home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1992-07-15 | 22.8 KB | [TEXT/MPS ] |
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
Confidence | Program | Detection | Match Type | Support
|
---|
66%
| dexvert
| ZX81 Sinclair BASIC (image/sinclairBASIC)
| ext
| Supported |
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, inited, Wed Jul 15 16:26:30 1992, modified Wed Jul 15 16:26:30 1992, creator 'MPS ', type ASCII, 21330 bytes "SchedulerUnit.inc.p" , at 0x53d2 1771 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [MPS ] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 13 53 63 68 65 64 75 | 6c 65 72 55 6e 69 74 2e |..Schedu|lerUnit.|
|00000010| 69 6e 63 2e 70 00 00 00 | 00 00 00 00 00 00 00 00 |inc.p...|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 50 53 | 20 01 00 00 00 00 00 00 |.TEXTMPS| .......|
|00000050| 00 00 00 00 00 53 52 00 | 00 06 eb a6 8a 3a 76 a6 |.....SR.|.....:v.|
|00000060| 8a 3a 76 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.:v.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 c9 11 00 00 |........|........|
|00000080| 7b 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |{=======|========|
|00000090| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 7d 0d |========|======}.|
|000000d0| 7b 20 53 63 68 65 64 75 | 6c 65 72 55 6e 69 74 20 |{ Schedu|lerUnit |
|000000e0| 75 6e 69 74 20 7d 0d 09 | 7b 53 63 68 65 64 75 6c |unit }..|{Schedul|
|000000f0| 65 72 55 6e 69 74 2e 69 | 6e 63 2e 20 76 65 72 73 |erUnit.i|nc. vers|
|00000100| 69 6f 6e 20 31 2e 31 2d | 30 45 20 7d 0d 09 7b 20 |ion 1.1-|0E }..{ |
|00000110| 43 6f 70 79 72 69 67 68 | 74 20 a9 20 31 39 38 39 |Copyrigh|t . 1989|
|00000120| 2d 31 39 39 31 20 54 68 | 65 20 4e 65 74 57 6f 72 |-1991 Th|e NetWor|
|00000130| 6b 20 50 72 6f 6a 65 63 | 74 2c 20 53 74 61 74 4c |k Projec|t, StatL|
|00000140| 61 62 20 48 65 69 64 65 | 6c 62 65 72 67 0d 09 43 |ab Heide|lberg..C|
|00000150| 6f 70 79 72 69 67 68 74 | 20 a9 20 31 39 38 39 2d |opyright| . 1989-|
|00000160| 31 39 39 31 20 47 2e 20 | 53 61 77 69 74 7a 6b 69 |1991 G. |Sawitzki|
|00000170| 2c 20 53 74 61 74 4c 61 | 62 20 48 65 69 64 65 6c |, StatLa|b Heidel|
|00000180| 62 65 72 67 20 7d 0d 09 | 0d 09 7b 24 53 45 54 43 |berg }..|..{$SETC|
|00000190| 20 64 65 62 75 67 67 69 | 6e 67 3d 66 61 6c 73 65 | debuggi|ng=false|
|000001a0| 7d 0d 0d 7b 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |}..{====|========|
|000001b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000001c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000001d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000001e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000001f0| 3d 7d 0d 7b 54 68 69 6e | 67 73 20 74 6f 20 64 6f |=}.{Thin|gs to do|
|00000200| 0d 4d 6f 76 65 20 4d 79 | 41 64 64 72 20 74 6f 20 |.Move My|Addr to |
|00000210| 6c 69 62 72 61 72 79 20 | 61 6e 64 20 72 65 6e 61 |library |and rena|
|00000220| 6d 65 0d 0d 52 65 64 75 | 63 65 20 73 61 66 65 74 |me..Redu|ce safet|
|00000230| 79 20 6c 65 76 65 6c 73 | 2e 20 54 68 65 72 65 20 |y levels|. There |
|00000240| 73 68 6f 75 6c 64 20 62 | 65 20 6a 75 73 74 20 74 |should b|e just t|
|00000250| 77 6f 20 66 6c 61 67 73 | 0d 09 64 65 62 75 67 67 |wo flags|..debugg|
|00000260| 69 6e 67 09 75 73 65 64 | 20 66 6f 72 20 6c 6f 77 |ing.used| for low|
|00000270| 20 6c 65 76 65 6c 20 64 | 65 62 75 67 67 69 6e 67 | level d|ebugging|
|00000280| 0d 09 70 61 72 61 6e 6f | 69 61 09 28 66 6f 6f 6c |..parano|ia.(fool|
|00000290| 70 72 6f 6f 66 2c 20 6f | 72 20 73 6f 6d 65 20 6e |proof, o|r some n|
|000002a0| 69 63 65 72 20 6e 61 6d | 65 29 20 55 73 65 64 20 |icer nam|e) Used |
|000002b0| 74 6f 20 61 64 64 20 61 | 64 64 69 74 69 6f 6e 61 |to add a|dditiona|
|000002c0| 6c 20 63 68 65 63 6b 73 | 20 0d 09 09 09 09 69 66 |l checks| .....if|
|000002d0| 20 61 20 75 73 65 72 20 | 63 61 6c 6c 73 20 61 20 | a user |calls a |
|000002e0| 6d 65 74 68 6f 64 20 64 | 69 72 65 63 6c 79 2e 20 |method d|irecly. |
|000002f0| 53 68 6f 75 6c 64 20 6e | 6f 74 20 62 65 20 6e 65 |Should n|ot be ne|
|00000300| 63 65 73 73 61 72 79 20 | 69 66 0d 09 09 09 09 74 |cessary |if.....t|
|00000310| 68 65 20 53 63 68 65 64 | 75 6c 65 72 20 64 6f 65 |he Sched|uler doe|
|00000320| 73 20 61 6c 6c 20 74 68 | 65 20 6d 65 73 73 61 67 |s all th|e messag|
|00000330| 65 20 68 61 6e 64 6c 69 | 6e 67 2e 0d 09 09 09 09 |e handli|ng......|
|00000340| 0d 44 65 62 75 67 67 65 | 72 20 63 61 6c 6c 73 20 |.Debugge|r calls |
|00000350| 73 68 6f 75 6c 64 20 62 | 65 20 63 68 61 6e 6e 65 |should b|e channe|
|00000360| 6c 6c 65 64 20 76 69 61 | 20 48 61 6e 64 6c 65 45 |lled via| HandleE|
|00000370| 72 72 6f 72 2e 20 48 61 | 6e 64 6c 65 45 72 72 6f |rror. Ha|ndleErro|
|00000380| 72 20 6e 65 65 64 73 20 | 61 6e 20 0d 69 6d 70 72 |r needs |an .impr|
|00000390| 6f 76 65 6d 65 6e 74 20 | 74 6f 20 6d 61 6b 65 20 |ovement |to make |
|000003a0| 61 20 66 61 69 6c 2d 73 | 61 66 65 20 63 61 6c 6c |a fail-s|afe call|
|000003b0| 20 74 6f 20 74 68 65 20 | 64 65 62 75 67 67 65 72 | to the |debugger|
|000003c0| 20 6f 6e 20 61 6c 6c 20 | 70 6c 61 74 66 6f 72 6d | on all |platform|
|000003d0| 73 2f 73 79 73 74 65 6d | 73 2e 7d 0d 7b 3d 3d 3d |s/system|s.}.{===|
|000003e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000003f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000400| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000410| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000420| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 7d 0d 66 75 6e 63 |========|==}.func|
|00000430| 74 69 6f 6e 20 4d 79 41 | 64 64 72 28 76 61 72 20 |tion MyA|ddr(var |
|00000440| 74 72 61 6e 73 70 6f 72 | 74 3a 54 72 61 6e 73 70 |transpor|t:Transp|
|00000450| 6f 72 74 50 74 72 29 3a | 4d 73 67 41 64 64 72 3b |ortPtr):|MsgAddr;|
|00000460| 0d 76 61 72 20 74 65 6d | 70 61 64 64 72 3a 4d 73 |.var tem|paddr:Ms|
|00000470| 67 41 64 64 72 3b 0d 62 | 65 67 69 6e 0d 09 74 65 |gAddr;.b|egin..te|
|00000480| 6d 70 41 64 64 72 3a 3d | 4e 65 74 57 6f 72 6b 53 |mpAddr:=|NetWorkS|
|00000490| 63 68 65 64 75 6c 65 72 | 2e 4d 79 53 65 6c 66 3b |cheduler|.MySelf;|
|000004a0| 0d 09 69 66 20 74 72 61 | 6e 73 70 6f 72 74 3d 6e |..if tra|nsport=n|
|000004b0| 69 6c 20 74 68 65 6e 20 | 62 65 67 69 6e 0d 09 09 |il then |begin...|
|000004c0| 74 72 61 6e 73 70 6f 72 | 74 3a 3d 4e 65 74 57 6f |transpor|t:=NetWo|
|000004d0| 72 6b 53 63 68 65 64 75 | 6c 65 72 2e 4d 79 54 72 |rkSchedu|ler.MyTr|
|000004e0| 61 6e 73 70 6f 72 74 3b | 0d 09 65 6e 64 20 65 6c |ansport;|..end el|
|000004f0| 73 65 20 74 65 6d 70 61 | 64 64 72 2e 61 3a 3d 54 |se tempa|ddr.a:=T|
|00000500| 72 61 6e 73 70 6f 72 74 | 5e 2e 54 72 61 6e 73 70 |ransport|^.Transp|
|00000510| 6f 72 74 41 64 64 72 3b | 0d 09 4d 79 41 64 64 72 |ortAddr;|..MyAddr|
|00000520| 3a 3d 74 65 6d 70 61 64 | 64 72 3b 0d 65 6e 64 3b |:=tempad|dr;.end;|
|00000530| 0d 0d 7b 24 49 46 43 20 | 4d 65 6d 62 65 72 4b 6c |..{$IFC |MemberKl|
|00000540| 75 64 67 65 7d 0d 7b 74 | 68 65 20 6d 65 6d 62 65 |udge}.{t|he membe|
|00000550| 72 20 66 75 6e 63 74 69 | 6f 6e 20 6f 66 20 4d 50 |r functi|on of MP|
|00000560| 57 20 33 2e 32 20 6d 61 | 79 20 72 75 6e 20 69 6e |W 3.2 ma|y run in|
|00000570| 74 6f 20 61 20 62 75 73 | 20 65 72 72 6f 72 20 69 |to a bus| error i|
|00000580| 6e 73 74 65 61 64 0d 09 | 09 09 09 09 09 09 6f 66 |nstead..|......of|
|00000590| 20 72 65 70 6f 72 74 69 | 6e 67 20 66 61 6c 73 65 | reporti|ng false|
|000005a0| 20 77 68 65 6e 20 74 68 | 65 20 66 69 72 73 74 20 | when th|e first |
|000005b0| 61 72 67 75 6d 65 6e 74 | 20 69 73 20 6e 6f 74 20 |argument| is not |
|000005c0| 61 6e 20 6f 62 6a 65 63 | 74 2e 20 49 66 0d 09 09 |an objec|t. If...|
|000005d0| 09 09 09 09 09 4d 65 6d | 62 65 72 4b 6c 75 64 67 |.....Mem|berKludg|
|000005e0| 65 20 69 73 20 74 72 75 | 65 2c 20 73 70 65 63 69 |e is tru|e, speci|
|000005f0| 61 6c 20 63 61 75 74 69 | 6f 6e 73 20 61 72 65 20 |al cauti|ons are |
|00000600| 74 61 6b 65 6e 20 74 6f | 20 61 76 6f 69 64 20 74 |taken to| avoid t|
|00000610| 68 69 73 0d 09 09 09 09 | 09 09 09 70 72 6f 62 6c |his.....|...probl|
|00000620| 65 6d 7d 0d 7b 64 65 72 | 65 66 65 72 65 6e 63 65 |em}.{der|eference|
|00000630| 20 61 6e 64 20 74 65 73 | 74 20 77 68 65 74 68 65 | and tes|t whethe|
|00000640| 72 20 73 74 72 75 63 74 | 75 72 65 20 73 74 61 72 |r struct|ure star|
|00000650| 74 73 20 77 69 74 68 20 | 61 20 22 6d 61 67 69 63 |ts with |a "magic|
|00000660| 20 77 6f 72 64 22 7d 0d | 66 75 6e 63 74 69 6f 6e | word"}.|function|
|00000670| 20 4d 65 6d 62 65 72 4b | 6c 75 64 67 65 28 70 3a | MemberK|ludge(p:|
|00000680| 20 75 6e 69 76 20 68 61 | 6e 64 6c 65 29 3a 62 6f | univ ha|ndle):bo|
|00000690| 6f 6c 65 61 6e 3b 0d 74 | 79 70 65 20 6c 70 3d 5e |olean;.t|ype lp=^|
|000006a0| 6c 6f 6e 67 69 6e 74 3b | 0d 62 65 67 69 6e 0d 09 |longint;|.begin..|
|000006b0| 4d 65 6d 62 65 72 4b 6c | 75 64 67 65 3a 3d 28 6c |MemberKl|udge:=(l|
|000006c0| 70 28 6f 72 64 34 28 70 | 5e 29 2b 32 29 5e 3d 6c |p(ord4(p|^)+2)^=l|
|000006d0| 6f 6e 67 69 6e 74 28 27 | 74 4d 48 64 27 29 29 3b |ongint('|tMHd'));|
|000006e0| 09 0d 65 6e 64 3b 0d 7b | 24 45 4e 44 43 7d 0d 0d |..end;.{|$ENDC}..|
|000006f0| 0d 7b 24 49 46 43 20 55 | 4e 44 45 46 49 4e 45 44 |.{$IFC U|NDEFINED|
|00000700| 20 55 73 69 6e 67 45 76 | 65 6e 74 73 7d 0d 7b 66 | UsingEv|ents}.{f|
|00000710| 72 6f 6d 20 65 76 65 6e | 74 20 2d 2d 20 64 6f 6e |rom even|t -- don|
|00000720| 27 74 20 77 61 6e 74 20 | 71 75 69 63 6b 64 72 61 |'t want |quickdra|
|00000730| 77 20 6a 75 73 74 20 74 | 6f 20 67 65 74 20 61 20 |w just t|o get a |
|00000740| 63 6f 6e 73 74 61 6e 74 | 20 6f 72 20 74 68 65 20 |constant| or the |
|00000750| 74 69 6d 65 7d 0d 63 6f | 6e 73 74 20 4e 65 74 57 |time}.co|nst NetW|
|00000760| 6f 72 6b 45 76 74 20 3d | 20 31 30 3b 0d 46 55 4e |orkEvt =| 10;.FUN|
|00000770| 43 54 49 4f 4e 20 54 69 | 63 6b 43 6f 75 6e 74 3a |CTION Ti|ckCount:|
|00000780| 20 4c 4f 4e 47 49 4e 54 | 3b 0d 49 4e 4c 49 4e 45 | LONGINT|;.INLINE|
|00000790| 20 24 41 39 37 35 3b 0d | 7b 24 45 4e 44 43 7d 0d | $A975;.|{$ENDC}.|
|000007a0| 0d 0d 7b 24 49 46 43 20 | 55 4e 44 45 46 49 4e 45 |..{$IFC |UNDEFINE|
|000007b0| 44 20 55 73 69 6e 67 50 | 61 63 6b 61 67 65 73 7d |D UsingP|ackages}|
|000007c0| 0d 7b 69 6e 73 74 65 61 | 64 20 6f 66 20 70 61 63 |.{instea|d of pac|
|000007d0| 6b 61 67 65 73 20 2d 2d | 20 77 65 20 64 6f 20 6e |kages --| we do n|
|000007e0| 6f 74 20 77 61 6e 74 20 | 61 20 70 61 63 6b 61 67 |ot want |a packag|
|000007f0| 65 20 6a 75 73 74 20 74 | 6f 20 63 6f 6e 76 65 72 |e just t|o conver|
|00000800| 74 20 61 20 6e 75 6d 62 | 65 72 7d 0d 70 72 6f 63 |t a numb|er}.proc|
|00000810| 65 64 75 72 65 20 6e 75 | 6d 74 6f 73 74 72 69 6e |edure nu|mtostrin|
|00000820| 67 20 28 6c 20 3a 20 6c | 6f 6e 67 69 6e 74 3b 20 |g (l : l|ongint; |
|00000830| 76 61 72 20 73 20 3a 20 | 73 74 72 31 35 29 3b 0d |var s : |str15);.|
|00000840| 76 61 72 20 6b 20 3a 20 | 6c 6f 6e 67 69 6e 74 3b |var k : |longint;|
|00000850| 20 0d 09 6d 69 6e 75 73 | 20 3a 20 62 6f 6f 6c 65 | ..minus| : boole|
|00000860| 61 6e 3b 20 7b 20 74 6f | 20 62 65 20 64 6f 6e 65 |an; { to| be done|
|00000870| 20 7d 0d 62 65 67 69 6e | 0d 09 69 66 20 6c 3d 30 | }.begin|..if l=0|
|00000880| 20 74 68 65 6e 20 73 3a | 3d 27 30 27 20 65 6c 73 | then s:|='0' els|
|00000890| 65 20 62 65 67 69 6e 20 | 0d 09 09 73 20 3a 3d 20 |e begin |...s := |
|000008a0| 27 27 3b 0d 09 09 69 66 | 20 6c 3c 30 20 74 68 65 |'';...if| l<0 the|
|000008b0| 6e 20 62 65 67 69 6e 20 | 6d 69 6e 75 73 3a 3d 74 |n begin |minus:=t|
|000008c0| 72 75 65 3b 20 6c 3a 3d | 2d 6c 20 65 6e 64 20 65 |rue; l:=|-l end e|
|000008d0| 6c 73 65 20 6d 69 6e 75 | 73 3a 3d 66 61 6c 73 65 |lse minu|s:=false|
|000008e0| 3b 0d 09 09 77 68 69 6c | 65 20 28 6c 20 3e 20 30 |;...whil|e (l > 0|
|000008f0| 29 20 64 6f 20 62 65 67 | 69 6e 0d 09 09 09 6b 20 |) do beg|in....k |
|00000900| 3a 3d 20 6c 20 64 69 76 | 20 31 30 3b 0d 09 09 09 |:= l div| 10;....|
|00000910| 6c 20 3a 3d 20 6c 20 2d | 20 6b 20 2a 20 31 30 3b |l := l -| k * 10;|
|00000920| 0d 09 09 09 69 6e 73 65 | 72 74 20 28 27 20 27 2c |....inse|rt (' ',|
|00000930| 73 2c 31 29 3b 20 73 20 | 5b 31 5d 20 3a 3d 20 63 |s,1); s |[1] := c|
|00000940| 68 72 20 28 6c 2b 6f 72 | 64 20 28 27 30 27 29 29 |hr (l+or|d ('0'))|
|00000950| 3b 0d 09 09 09 6c 20 3a | 3d 20 6b 3b 0d 09 09 65 |;....l :|= k;...e|
|00000960| 6e 64 3b 0d 09 09 69 66 | 20 6d 69 6e 75 73 20 74 |nd;...if| minus t|
|00000970| 68 65 6e 20 69 6e 73 65 | 72 74 20 28 27 2d 27 2c |hen inse|rt ('-',|
|00000980| 73 2c 31 29 3b 20 0d 09 | 65 6e 64 3b 0d 09 7b 09 |s,1); ..|end;..{.|
|00000990| 09 77 68 69 6c 65 20 6c | 65 6e 67 74 68 20 28 73 |.while l|ength (s|
|000009a0| 29 20 3c 20 38 20 64 6f | 20 69 6e 73 65 72 74 20 |) < 8 do| insert |
|000009b0| 28 27 20 27 2c 20 73 2c | 20 31 29 3b 7d 0d 65 6e |(' ', s,| 1);}.en|
|000009c0| 64 3b 0d 7b 24 45 4e 44 | 43 7d 0d 0d 0d 7b 3d 3d |d;.{$END|C}...{==|
|000009d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000009e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000009f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000a00| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000a10| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 7d 0d 7b 09 44 |========|===}.{.D|
|00000a20| 65 66 61 75 6c 74 20 74 | 61 73 6b 20 68 61 6e 64 |efault t|ask hand|
|00000a30| 6c 65 72 09 7d 0d 0d 70 | 72 6f 63 65 64 75 72 65 |ler.}..p|rocedure|
|00000a40| 20 74 4d 65 73 73 61 67 | 65 48 61 6e 64 6c 65 72 | tMessag|eHandler|
|00000a50| 2e 69 6e 69 74 3b 0d 62 | 65 67 69 6e 0d 7b 24 49 |.init;.b|egin.{$I|
|00000a60| 46 43 20 4d 65 6d 62 65 | 72 4b 6c 75 64 67 65 7d |FC Membe|rKludge}|
|00000a70| 0d 09 09 4d 65 6d 62 65 | 72 4b 6c 75 64 67 65 4d |...Membe|rKludgeM|
|00000a80| 61 67 69 63 3a 3d 6c 6f | 6e 67 69 6e 74 28 27 74 |agic:=lo|ngint('t|
|00000a90| 4d 48 64 27 29 3b 0d 09 | 09 7b 24 49 46 43 20 70 |MHd');..|.{$IFC p|
|00000aa0| 61 72 61 6e 6f 69 61 7d | 0d 09 09 69 66 20 6c 6f |aranoia}|...if lo|
|00000ab0| 6e 67 69 6e 74 28 40 4d | 65 6d 62 65 72 4b 6c 75 |ngint(@M|emberKlu|
|00000ac0| 64 67 65 4d 61 67 69 63 | 29 2d 6c 6f 6e 67 69 6e |dgeMagic|)-longin|
|00000ad0| 74 28 68 61 6e 64 6c 65 | 28 73 65 6c 66 29 5e 29 |t(handle|(self)^)|
|00000ae0| 3c 3e 32 20 74 68 65 6e | 20 50 72 6f 67 72 61 6d |<>2 then| Program|
|00000af0| 42 72 65 61 6b 28 27 6f | 62 6a 65 63 74 20 68 65 |Break('o|bject he|
|00000b00| 61 64 65 72 20 73 69 7a | 65 20 3c 3e 32 27 29 3b |ader siz|e <>2');|
|00000b10| 0d 09 09 7b 24 45 4e 44 | 43 7d 0d 7b 24 45 4e 44 |...{$END|C}.{$END|
|00000b20| 43 7d 0d 0d 09 4e 72 50 | 65 6e 64 69 6e 67 4d 65 |C}...NrP|endingMe|
|00000b30| 73 73 61 67 65 73 3a 3d | 30 3b 0d 09 72 65 73 74 |ssages:=|0;..rest|
|00000b40| 61 72 74 3b 0d 65 6e 64 | 3b 0d 0d 70 72 6f 63 65 |art;.end|;..proce|
|00000b50| 64 75 72 65 20 74 4d 65 | 73 73 61 67 65 48 61 6e |dure tMe|ssageHan|
|00000b60| 64 6c 65 72 2e 72 65 73 | 74 61 72 74 3b 0d 62 65 |dler.res|tart;.be|
|00000b70| 67 69 6e 0d 09 63 6f 6e | 74 65 78 74 73 74 61 6d |gin..con|textstam|
|00000b80| 70 3a 3d 30 3b 0d 65 6e | 64 3b 0d 0d 70 72 6f 63 |p:=0;.en|d;..proc|
|00000b90| 65 64 75 72 65 20 74 4d | 65 73 73 61 67 65 48 61 |edure tM|essageHa|
|00000ba0| 6e 64 6c 65 72 2e 53 74 | 61 6d 70 28 4d 73 67 3a |ndler.St|amp(Msg:|
|00000bb0| 4d 73 67 50 74 72 29 3b | 0d 09 7b 73 68 6f 75 6c |MsgPtr);|..{shoul|
|00000bc0| 64 20 62 65 20 63 61 6c | 6c 65 64 20 6f 6e 6c 79 |d be cal|led only|
|00000bd0| 20 66 72 6f 6d 20 4d 73 | 67 48 65 61 64 65 72 55 | from Ms|gHeaderU|
|00000be0| 73 61 62 6c 65 20 28 72 | 65 63 65 69 76 65 72 27 |sable (r|eceiver'|
|00000bf0| 73 20 73 69 64 65 29 20 | 0d 09 6f 72 20 66 72 6f |s side) |..or fro|
|00000c00| 6d 20 4e 65 77 54 61 73 | 6b 20 28 67 65 6e 65 72 |m NewTas|k (gener|
|00000c10| 61 74 6f 72 27 73 20 73 | 69 64 65 29 2e 20 53 68 |ator's s|ide). Sh|
|00000c20| 6f 75 6c 64 20 62 65 20 | 63 61 6c 6c 65 64 20 6f |ould be |called o|
|00000c30| 6e 6c 79 20 6f 6e 63 65 | 20 70 65 72 20 6d 65 73 |nly once| per mes|
|00000c40| 73 61 67 65 2e 7d 0d 62 | 65 67 69 6e 0d 09 77 69 |sage.}.b|egin..wi|
|00000c50| 74 68 20 6d 73 67 5e 20 | 64 6f 20 69 66 20 4d 73 |th msg^ |do if Ms|
|00000c60| 67 55 73 65 72 52 65 66 | 43 6f 6e 3c 3e 6c 6f 6e |gUserRef|Con<>lon|
|00000c70| 67 69 6e 74 28 73 65 6c | 66 29 20 74 68 65 6e 20 |gint(sel|f) then |
|00000c80| 7b 6e 6f 74 20 79 65 74 | 20 73 74 61 6d 70 65 64 |{not yet| stamped|
|00000c90| 7d 0d 09 62 65 67 69 6e | 0d 09 09 7b 24 49 46 43 |}..begin|...{$IFC|
|00000ca0| 20 70 61 72 61 6e 6f 69 | 61 7d 20 69 66 20 4d 73 | paranoi|a} if Ms|
|00000cb0| 67 55 73 65 72 52 65 66 | 43 6f 6e 3c 3e 6c 6f 6e |gUserRef|Con<>lon|
|00000cc0| 67 69 6e 74 28 6e 69 6c | 29 20 74 68 65 6e 20 50 |gint(nil|) then P|
|00000cd0| 72 6f 67 72 61 6d 42 72 | 65 61 6b 28 27 53 74 61 |rogramBr|eak('Sta|
|00000ce0| 6d 70 3a 20 67 6f 74 20 | 4d 73 67 20 77 69 74 68 |mp: got |Msg with|
|00000cf0| 20 72 65 66 27 29 3b 7b | 73 68 6f 75 6c 64 20 6e | ref');{|should n|
|00000d00| 6f 74 20 68 61 70 70 65 | 6e 7d 0d 09 09 7b 24 45 |ot happe|n}...{$E|
|00000d10| 4e 44 43 7d 0d 0d 09 09 | 4e 72 50 65 6e 64 69 6e |NDC}....|NrPendin|
|00000d20| 67 4d 65 73 73 61 67 65 | 73 3a 3d 4e 72 50 65 6e |gMessage|s:=NrPen|
|00000d30| 64 69 6e 67 4d 65 73 73 | 61 67 65 73 2b 31 3b 0d |dingMess|ages+1;.|
|00000d40| 09 09 4d 73 67 5e 2e 4d | 73 67 55 73 65 72 52 65 |..Msg^.M|sgUserRe|
|00000d50| 66 43 6f 6e 3a 3d 6c 6f | 6e 67 69 6e 74 28 73 65 |fCon:=lo|ngint(se|
|00000d60| 6c 66 29 3b 0d 09 65 6e | 64 3b 0d 65 6e 64 3b 0d |lf);..en|d;.end;.|
|00000d70| 0d 66 75 6e 63 74 69 6f | 6e 20 74 4d 65 73 73 61 |.functio|n tMessa|
|00000d80| 67 65 48 61 6e 64 6c 65 | 72 2e 44 65 73 74 72 6f |geHandle|r.Destro|
|00000d90| 79 28 76 61 72 20 4d 73 | 67 3a 4d 73 67 50 74 72 |y(var Ms|g:MsgPtr|
|00000da0| 29 3a 4f 73 45 72 72 3b | 0d 62 65 67 69 6e 0d 09 |):OsErr;|.begin..|
|00000db0| 44 65 73 74 72 6f 79 3a | 3d 4e 6f 45 72 72 3b 09 |Destroy:|=NoErr;.|
|00000dc0| 7b 73 74 69 6c 6c 20 74 | 6f 20 64 65 63 69 64 65 |{still t|o decide|
|00000dd0| 3a 20 77 68 69 63 68 20 | 65 72 72 6f 72 20 68 61 |: which |error ha|
|00000de0| 6e 64 6c 69 6e 67 20 73 | 68 6f 75 6c 64 20 62 65 |ndling s|hould be|
|00000df0| 20 67 65 6e 65 72 69 63 | 20 3f 7d 0d 09 69 66 20 | generic| ?}..if |
|00000e00| 4d 73 67 3c 3e 6e 69 6c | 20 74 68 65 6e 20 20 0d |Msg<>nil| then .|
|00000e10| 09 62 65 67 69 6e 0d 09 | 09 69 66 20 4d 73 67 5e |.begin..|.if Msg^|
|00000e20| 2e 4d 73 67 55 73 65 72 | 52 65 66 43 6f 6e 3d 6c |.MsgUser|RefCon=l|
|00000e30| 6f 6e 67 69 6e 74 28 73 | 65 6c 66 29 20 74 68 65 |ongint(s|elf) the|
|00000e40| 6e 20 0d 09 09 62 65 67 | 69 6e 0d 09 09 09 44 65 |n ...beg|in....De|
|00000e50| 73 74 72 6f 79 3a 3d 44 | 65 73 74 72 6f 79 4d 73 |stroy:=D|estroyMs|
|00000e60| 67 28 4d 73 67 29 3b 0d | 09 09 09 4e 72 50 65 6e |g(Msg);.|...NrPen|
|00000e70| 64 69 6e 67 4d 65 73 73 | 61 67 65 73 3a 3d 4e 72 |dingMess|ages:=Nr|
|00000e80| 50 65 6e 64 69 6e 67 4d | 65 73 73 61 67 65 73 2d |PendingM|essages-|
|00000e90| 31 3b 0d 09 09 09 4d 73 | 67 3a 3d 6e 69 6c 3b 0d |1;....Ms|g:=nil;.|
|00000ea0| 09 09 65 6e 64 0d 09 09 | 7b 24 49 46 43 20 70 61 |..end...|{$IFC pa|
|00000eb0| 72 61 6e 6f 69 61 7d 65 | 6c 73 65 20 50 72 6f 67 |ranoia}e|lse Prog|
|00000ec0| 72 61 6d 42 72 65 61 6b | 28 27 74 4d 65 73 73 61 |ramBreak|('tMessa|
|00000ed0| 67 65 48 61 6e 64 6c 65 | 72 2e 44 65 73 74 72 6f |geHandle|r.Destro|
|00000ee0| 79 3a 20 6e 6f 74 20 6d | 79 20 6d 65 73 73 61 67 |y: not m|y messag|
|00000ef0| 65 27 29 09 7b 24 45 4e | 44 43 7d 3b 0d 09 65 6e |e').{$EN|DC};..en|
|00000f00| 64 0d 09 7b 24 49 46 43 | 20 70 61 72 61 6e 6f 69 |d..{$IFC| paranoi|
|00000f10| 61 7d 20 65 6c 73 65 20 | 50 72 6f 67 72 61 6d 42 |a} else |ProgramB|
|00000f20| 72 65 61 6b 28 27 74 4d | 65 73 73 61 67 65 48 61 |reak('tM|essageHa|
|00000f30| 6e 64 6c 65 72 2e 44 65 | 73 74 72 6f 79 28 6e 69 |ndler.De|stroy(ni|
|00000f40| 6c 29 27 29 09 7b 24 45 | 4e 44 43 7d 3b 7b 4d 73 |l)').{$E|NDC};{Ms|
|00000f50| 67 3c 3e 6e 69 6c 20 7d | 0d 65 6e 64 3b 0d 0d 70 |g<>nil }|.end;..p|
|00000f60| 72 6f 63 65 64 75 72 65 | 20 74 4d 65 73 73 61 67 |rocedure| tMessag|
|00000f70| 65 48 61 6e 64 6c 65 72 | 2e 44 69 73 70 6f 73 50 |eHandler|.DisposP|
|00000f80| 72 69 6f 50 74 72 28 76 | 61 72 20 50 72 69 6f 50 |rioPtr(v|ar PrioP|
|00000f90| 74 72 3a 55 4e 49 56 20 | 50 74 72 29 3b 0d 62 65 |tr:UNIV |Ptr);.be|
|00000fa0| 67 69 6e 0d 09 69 66 20 | 50 72 69 6f 50 74 72 3c |gin..if |PrioPtr<|
|00000fb0| 3e 6e 69 6c 20 74 68 65 | 6e 20 62 65 67 69 6e 20 |>nil the|n begin |
|00000fc0| 7b 73 74 69 6c 6c 20 74 | 6f 20 64 65 63 69 64 65 |{still t|o decide|
|00000fd0| 3a 20 63 68 65 63 6b 20 | 68 65 72 65 20 3f 7d 0d |: check |here ?}.|
|00000fe0| 09 09 44 69 73 70 6f 73 | 50 74 72 28 50 72 69 6f |..Dispos|Ptr(Prio|
|00000ff0| 50 74 72 29 3b 0d 09 09 | 50 72 69 6f 50 74 72 3a |Ptr);...|PrioPtr:|
|00001000| 3d 6e 69 6c 3b 0d 09 65 | 6e 64 3b 0d 65 6e 64 3b |=nil;..e|nd;.end;|
|00001010| 0d 0d 70 72 6f 63 65 64 | 75 72 65 20 74 4d 65 73 |..proced|ure tMes|
|00001020| 73 61 67 65 48 61 6e 64 | 6c 65 72 2e 44 69 73 70 |sageHand|ler.Disp|
|00001030| 6f 73 43 6f 72 65 50 74 | 72 28 76 61 72 20 43 6f |osCorePt|r(var Co|
|00001040| 72 65 50 74 72 3a 55 4e | 49 56 20 50 74 72 29 3b |rePtr:UN|IV Ptr);|
|00001050| 0d 62 65 67 69 6e 0d 09 | 69 66 20 43 6f 72 65 50 |.begin..|if CoreP|
|00001060| 74 72 3c 3e 6e 69 6c 20 | 74 68 65 6e 20 62 65 67 |tr<>nil |then beg|
|00001070| 69 6e 20 7b 73 74 69 6c | 6c 20 74 6f 20 64 65 63 |in {stil|l to dec|
|00001080| 69 64 65 3a 20 63 68 65 | 63 6b 20 68 65 72 65 20 |ide: che|ck here |
|00001090| 3f 7d 0d 09 09 44 69 73 | 70 6f 73 50 74 72 28 43 |?}...Dis|posPtr(C|
|000010a0| 6f 72 65 50 74 72 29 3b | 0d 09 09 43 6f 72 65 50 |orePtr);|...CoreP|
|000010b0| 74 72 3a 3d 6e 69 6c 3b | 0d 09 65 6e 64 3b 0d 65 |tr:=nil;|..end;.e|
|000010c0| 6e 64 3b 0d 0d 66 75 6e | 63 74 69 6f 6e 20 74 4d |nd;..fun|ction tM|
|000010d0| 65 73 73 61 67 65 48 61 | 6e 64 6c 65 72 2e 44 69 |essageHa|ndler.Di|
|000010e0| 73 70 6f 73 4d 73 67 28 | 76 61 72 20 4d 73 67 3a |sposMsg(|var Msg:|
|000010f0| 4d 73 67 50 74 72 29 3a | 4f 73 45 72 72 3b 0d 09 |MsgPtr):|OsErr;..|
|00001100| 7b 53 68 6f 75 6c 64 20 | 72 65 6c 65 61 73 65 20 |{Should |release |
|00001110| 61 6c 6c 20 62 75 66 66 | 65 72 73 20 61 73 73 6f |all buff|ers asso|
|00001120| 63 69 61 74 65 64 20 77 | 69 74 68 20 4d 73 67 2c |ciated w|ith Msg,|
|00001130| 0d 09 61 6e 64 20 63 61 | 6c 6c 20 44 65 73 74 72 |..and ca|ll Destr|
|00001140| 6f 79 7d 0d 76 61 72 20 | 74 65 6d 70 4d 73 67 3a |oy}.var |tempMsg:|
|00001150| 4d 73 67 52 65 63 3b 0d | 62 65 67 69 6e 0d 09 7b |MsgRec;.|begin..{|
|00001160| 6f 76 65 72 72 69 64 65 | 20 62 79 20 72 65 6c 65 |override| by rele|
|00001170| 61 73 69 6e 67 20 62 75 | 66 66 65 72 73 20 66 69 |asing bu|ffers fi|
|00001180| 72 73 74 2c 20 69 66 20 | 61 70 70 72 6f 70 72 69 |rst, if |appropri|
|00001190| 61 74 65 7d 0d 09 44 69 | 73 70 6f 73 4d 73 67 3a |ate}..Di|sposMsg:|
|000011a0| 3d 4e 6f 45 72 72 3b 0d | 09 69 66 20 4d 73 67 3c |=NoErr;.|.if Msg<|
|000011b0| 3e 6e 69 6c 20 74 68 65 | 6e 20 20 62 65 67 69 6e |>nil the|n begin|
|000011c0| 0d 09 09 74 65 6d 70 4d | 73 67 3a 3d 20 4d 73 67 |...tempM|sg:= Msg|
|000011d0| 5e 3b 0d 09 09 44 69 73 | 70 6f 73 4d 73 67 3a 3d |^;...Dis|posMsg:=|
|000011e0| 44 65 73 74 72 6f 79 28 | 4d 73 67 29 3b 7b 6d 61 |Destroy(|Msg);{ma|
|000011f0| 6b 65 20 73 75 72 65 20 | 74 68 61 74 20 74 68 65 |ke sure |that the|
|00001200| 20 62 75 66 66 65 72 73 | 20 61 72 65 20 6e 6f 74 | buffers| are not|
|00001210| 20 61 63 63 65 73 73 65 | 64 20 61 6e 79 20 6d 6f | accesse|d any mo|
|00001220| 72 65 7d 0d 09 09 77 69 | 74 68 20 74 65 6d 70 4d |re}...wi|th tempM|
|00001230| 73 67 20 64 6f 20 62 65 | 67 69 6e 0d 09 09 09 69 |sg do be|gin....i|
|00001240| 66 20 4d 73 67 50 72 69 | 6f 50 74 72 3c 3e 6e 69 |f MsgPri|oPtr<>ni|
|00001250| 6c 20 74 68 65 6e 20 44 | 69 73 70 6f 73 50 72 69 |l then D|isposPri|
|00001260| 6f 50 74 72 28 4d 73 67 | 50 72 69 6f 50 74 72 29 |oPtr(Msg|PrioPtr)|
|00001270| 3b 0d 09 09 09 69 66 20 | 4d 73 67 43 6f 72 65 50 |;....if |MsgCoreP|
|00001280| 74 72 3c 3e 6e 69 6c 20 | 74 68 65 6e 20 44 69 73 |tr<>nil |then Dis|
|00001290| 70 6f 73 43 6f 72 65 50 | 74 72 28 4d 73 67 43 6f |posCoreP|tr(MsgCo|
|000012a0| 72 65 50 74 72 29 3b 0d | 09 09 65 6e 64 3b 0d 09 |rePtr);.|..end;..|
|000012b0| 65 6e 64 0d 09 7b 24 49 | 46 43 20 64 65 62 75 67 |end..{$I|FC debug|
|000012c0| 67 69 6e 67 7d 20 65 6c | 73 65 20 64 65 62 75 67 |ging} el|se debug|
|000012d0| 73 74 72 28 27 74 4d 65 | 73 73 61 67 65 48 61 6e |str('tMe|ssageHan|
|000012e0| 64 6c 65 72 2e 44 69 73 | 70 6f 73 65 4d 73 67 28 |dler.Dis|poseMsg(|
|000012f0| 6e 69 6c 29 27 29 7b 24 | 45 4e 44 43 7d 3b 7b 4d |nil)'){$|ENDC};{M|
|00001300| 73 67 3c 3e 6e 69 6c 20 | 7d 0d 0d 65 6e 64 3b 0d |sg<>nil |}..end;.|
|00001310| 0d 0d 66 75 6e 63 74 69 | 6f 6e 20 74 4d 65 73 73 |..functi|on tMess|
|00001320| 61 67 65 48 61 6e 64 6c | 65 72 2e 4e 65 77 50 72 |ageHandl|er.NewPr|
|00001330| 69 6f 50 74 72 28 76 61 | 72 20 50 72 69 6f 53 69 |ioPtr(va|r PrioSi|
|00001340| 7a 65 3a 6c 6f 6e 67 69 | 6e 74 29 3a 70 74 72 3b |ze:longi|nt):ptr;|
|00001350| 0d 09 09 09 09 09 7b 41 | 6c 6c 6f 63 61 74 65 20 |......{A|llocate |
|00001360| 61 20 6e 65 77 20 62 75 | 66 66 65 72 20 66 6f 72 |a new bu|ffer for|
|00001370| 20 70 72 69 6f 72 69 74 | 79 20 64 61 74 61 2e 20 | priorit|y data. |
|00001380| 0d 09 09 09 09 09 45 6e | 74 72 79 3a 20 50 72 69 |......En|try: Pri|
|00001390| 6f 53 69 7a 65 3d 52 65 | 71 75 65 73 74 65 64 20 |oSize=Re|quested |
|000013a0| 73 69 7a 65 3b 0d 09 09 | 09 09 09 45 78 69 74 3a |size;...|...Exit:|
|000013b0| 20 50 72 69 6f 53 69 7a | 65 3d 41 6c 6c 6f 63 61 | PrioSiz|e=Alloca|
|000013c0| 74 65 64 20 73 69 7a 65 | 3b 7d 0d 76 61 72 20 70 |ted size|;}.var p|
|000013d0| 3a 70 74 72 3b 09 09 09 | 09 09 0d 62 65 67 69 6e |:ptr;...|...begin|
|000013e0| 0d 09 69 66 20 50 72 69 | 6f 53 69 7a 65 3d 30 20 |..if Pri|oSize=0 |
|000013f0| 74 68 65 6e 20 4e 65 77 | 50 72 69 6f 50 74 72 3a |then New|PrioPtr:|
|00001400| 3d 6e 69 6c 0d 09 65 6c | 73 65 20 62 65 67 69 6e |=nil..el|se begin|
|00001410| 0d 09 70 3a 3d 4e 65 77 | 50 74 72 28 50 72 69 6f |..p:=New|Ptr(Prio|
|00001420| 73 69 7a 65 29 3b 0d 09 | 69 66 20 70 3d 6e 69 6c |size);..|if p=nil|
|00001430| 20 74 68 65 6e 20 50 72 | 69 6f 53 69 7a 65 3a 3d | then Pr|ioSize:=|
|00001440| 30 3b 0d 09 4e 65 77 50 | 72 69 6f 50 74 72 3a 3d |0;..NewP|rioPtr:=|
|00001450| 70 3b 09 0d 09 65 6e 64 | 3b 0d 65 6e 64 3b 0d 0d |p;...end|;.end;..|
|00001460| 66 75 6e 63 74 69 6f 6e | 20 74 4d 65 73 73 61 67 |function| tMessag|
|00001470| 65 48 61 6e 64 6c 65 72 | 2e 4e 65 77 43 6f 72 65 |eHandler|.NewCore|
|00001480| 50 74 72 28 76 61 72 20 | 43 6f 72 65 53 69 7a 65 |Ptr(var |CoreSize|
|00001490| 3a 6c 6f 6e 67 69 6e 74 | 29 3a 70 74 72 3b 0d 09 |:longint|):ptr;..|
|000014a0| 09 09 09 09 7b 41 6c 6c | 6f 63 61 74 65 20 61 20 |....{All|ocate a |
|000014b0| 6e 65 77 20 62 75 66 66 | 65 72 20 66 6f 72 20 63 |new buff|er for c|
|000014c0| 6f 72 65 3d 43 6f 72 65 | 20 64 61 74 61 2e 20 0d |ore=Core| data. .|
|000014d0| 09 09 09 09 09 45 6e 74 | 72 79 3a 20 50 72 69 6f |.....Ent|ry: Prio|
|000014e0| 53 69 7a 65 3d 52 65 71 | 75 65 73 74 65 64 20 73 |Size=Req|uested s|
|000014f0| 69 7a 65 3b 0d 09 09 09 | 09 09 45 78 69 74 3a 20 |ize;....|..Exit: |
|00001500| 50 72 69 6f 53 69 7a 65 | 3d 41 6c 6c 6f 63 61 74 |PrioSize|=Allocat|
|00001510| 65 64 20 73 69 7a 65 3b | 7d 0d 76 61 72 20 70 3a |ed size;|}.var p:|
|00001520| 70 74 72 3b 09 09 09 09 | 09 0d 62 65 67 69 6e 0d |ptr;....|..begin.|
|00001530| 09 69 66 20 43 6f 72 65 | 53 69 7a 65 3d 30 20 74 |.if Core|Size=0 t|
|00001540| 68 65 6e 20 4e 65 77 43 | 6f 72 65 50 74 72 3a 3d |hen NewC|orePtr:=|
|00001550| 6e 69 6c 0d 09 65 6c 73 | 65 20 62 65 67 69 6e 0d |nil..els|e begin.|
|00001560| 09 70 3a 3d 4e 65 77 50 | 74 72 28 43 6f 72 65 53 |.p:=NewP|tr(CoreS|
|00001570| 69 7a 65 29 3b 0d 09 69 | 66 20 70 3d 6e 69 6c 20 |ize);..i|f p=nil |
|00001580| 74 68 65 6e 20 43 6f 72 | 65 53 69 7a 65 3a 3d 30 |then Cor|eSize:=0|
|00001590| 3b 0d 09 4e 65 77 43 6f | 72 65 50 74 72 3a 3d 70 |;..NewCo|rePtr:=p|
|000015a0| 3b 09 0d 09 65 6e 64 3b | 0d 65 6e 64 3b 0d 0d 7b |;...end;|.end;..{|
|000015b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000015c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000015d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000015e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000015f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 7d 0d 7b |========|=====}.{|
|00001600| 09 70 72 6f 74 6f 74 79 | 70 65 20 6d 65 73 73 61 |.prototy|pe messa|
|00001610| 67 65 20 68 61 6e 64 6c | 65 72 73 2e 20 72 65 63 |ge handl|ers. rec|
|00001620| 65 69 76 69 6e 67 20 70 | 61 72 74 09 7d 0d 0d 0d |eiving p|art.}...|
|00001630| 7b 2d 2d 2d 2d 2d 2d 2d | 2d 2d 20 54 68 69 73 20 |{-------|-- This |
|00001640| 66 75 6e 63 74 69 6f 6e | 20 73 6f 6d 65 74 69 6d |function| sometim|
|00001650| 65 73 20 77 69 6c 6c 20 | 62 65 20 63 75 73 74 6f |es will |be custo|
|00001660| 6d 69 7a 65 64 20 2d 2d | 2d 2d 2d 2d 2d 2d 2d 7d |mized --|-------}|
|00001670| 0d 0d 66 75 6e 63 74 69 | 6f 6e 20 74 54 61 73 6b |..functi|on tTask|
|00001680| 48 61 6e 64 6c 65 72 2e | 4d 73 67 48 65 61 64 65 |Handler.|MsgHeade|
|00001690| 72 55 73 61 62 6c 65 28 | 76 61 72 20 6d 73 67 3a |rUsable(|var msg:|
|000016a0| 4d 73 67 50 74 72 29 3a | 62 6f 6f 6c 65 61 6e 3b |MsgPtr):|boolean;|
|000016b0| 0d 7b 64 6f 20 61 20 70 | 72 65 2d 63 68 65 63 6b |.{do a p|re-check|
|000016c0| 20 6f 66 20 61 6e 20 69 | 6e 63 6f 6d 69 6e 67 20 | of an i|ncoming |
|000016d0| 6d 65 73 73 61 67 65 2e | 7d 0d 76 61 72 20 4d 61 |message.|}.var Ma|
|000016e0| 73 74 65 72 4f 6b 2c 43 | 6f 6e 74 65 78 74 4f 6b |sterOk,C|ontextOk|
|000016f0| 3a 62 6f 6f 6c 65 61 6e | 3b 0d 09 74 65 6d 70 50 |:boolean|;..tempP|
|00001700| 72 69 76 69 6c 65 67 65 | 64 41 64 64 72 3a 09 09 |rivilege|dAddr:..|
|00001710| 4d 73 67 41 64 64 72 3b | 0d 62 65 67 69 6e 0d 0d |MsgAddr;|.begin..|
|00001720| 09 7b 24 69 66 63 20 64 | 65 62 75 67 67 69 6e 67 |.{$ifc d|ebugging|
|00001730| 7d 20 69 66 20 73 70 61 | 72 65 20 74 68 65 6e 20 |} if spa|re then |
|00001740| 64 65 62 75 67 73 74 72 | 28 27 74 54 61 73 6b 48 |debugstr|('tTaskH|
|00001750| 61 6e 64 6c 65 72 2e 4d | 73 67 48 65 61 64 65 72 |andler.M|sgHeader|
|00001760| 75 73 61 62 6c 65 20 63 | 68 65 63 6b 20 63 6f 6e |usable c|heck con|
|00001770| 74 65 78 74 3b 67 27 29 | 3b 20 7b 24 65 6e 64 63 |text;g')|; {$endc|
|00001780| 7d 0d 09 43 6f 6e 74 65 | 78 74 4f 6b 3a 3d 28 43 |}..Conte|xtOk:=(C|
|00001790| 6f 6e 74 65 78 74 53 74 | 61 6d 70 3d 30 29 20 7c |ontextSt|amp=0) ||
|000017a0| 20 28 6d 73 67 5e 2e 4d | 73 67 52 65 66 65 72 65 | (msg^.M|sgRefere|
|000017b0| 6e 63 65 3d 63 6f 6e 74 | 65 78 74 73 74 61 6d 70 |nce=cont|extstamp|
|000017c0| 29 3b 0d 0d 09 74 65 6d | 70 50 72 69 76 69 6c 65 |);...tem|pPrivile|
|000017d0| 67 65 64 41 64 64 72 3a | 3d 50 72 69 76 69 6c 65 |gedAddr:|=Privile|
|000017e0| 67 65 64 41 64 64 72 3b | 7b 61 76 6f 69 64 20 24 |gedAddr;|{avoid $|
|000017f0| 48 2d 7d 0d 09 4d 61 73 | 74 65 72 4f 6b 3a 3d 28 |H-}..Mas|terOk:=(|
|00001800| 50 72 69 76 69 6c 65 67 | 65 64 54 69 6d 65 6f 75 |Privileg|edTimeou|
|00001810| 74 20 3d 20 30 29 20 7c | 20 28 45 71 41 64 64 72 |t = 0) || (EqAddr|
|00001820| 28 6d 73 67 5e 2e 4d 73 | 67 53 6f 75 72 63 65 2c |(msg^.Ms|gSource,|
|00001830| 74 65 6d 70 50 72 69 76 | 69 6c 65 67 65 64 41 64 |tempPriv|ilegedAd|
|00001840| 64 72 29 29 3b 0d 0d 0d | 09 49 66 20 28 50 72 69 |dr));...|.If (Pri|
|00001850| 76 69 6c 65 67 65 64 54 | 69 6d 65 6f 75 74 20 3c |vilegedT|imeout <|
|00001860| 3e 20 30 29 20 26 20 4d | 61 73 74 65 72 4f 6b 20 |> 0) & M|asterOk |
|00001870| 74 68 65 6e 20 0d 09 50 | 72 69 76 69 6c 65 67 65 |then ..P|rivilege|
|00001880| 64 54 69 6d 65 6f 75 74 | 3a 3d 74 69 63 6b 43 6f |dTimeout|:=tickCo|
|00001890| 75 6e 74 2b 50 72 69 76 | 69 6c 65 67 65 64 49 6e |unt+Priv|ilegedIn|
|000018a0| 74 65 72 76 61 6c 3b 0d | 0d 09 69 66 20 28 6e 6f |terval;.|..if (no|
|000018b0| 74 20 4d 61 73 74 65 72 | 4f 6b 29 20 26 20 28 50 |t Master|Ok) & (P|
|000018c0| 72 69 76 69 6c 65 67 65 | 64 54 69 6d 65 6f 75 74 |rivilege|dTimeout|
|000018d0| 3c 54 69 63 6b 43 6f 75 | 6e 74 29 20 74 68 65 6e |<TickCou|nt) then|
|000018e0| 20 62 65 67 69 6e 0d 09 | 09 50 72 69 76 69 6c 65 | begin..|.Privile|
|000018f0| 67 65 64 54 69 6d 65 6f | 75 74 3a 3d 30 3b 20 20 |gedTimeo|ut:=0; |
|00001900| 0d 09 09 4d 61 73 74 65 | 72 4f 6b 3a 3d 74 72 75 |...Maste|rOk:=tru|
|00001910| 65 3b 0d 09 09 7b 72 65 | 73 65 74 20 63 6f 6e 74 |e;...{re|set cont|
|00001920| 65 78 74 2c 20 69 66 20 | 63 6f 6e 74 65 78 74 20 |ext, if |context |
|00001930| 77 61 73 20 6d 61 73 74 | 65 72 20 64 65 70 65 6e |was mast|er depen|
|00001940| 64 65 6e 74 2e 7d 0d 09 | 65 6e 64 3b 0d 0d 09 4d |dent.}..|end;...M|
|00001950| 73 67 48 65 61 64 65 72 | 55 73 61 62 6c 65 3a 3d |sgHeader|Usable:=|
|00001960| 43 6f 6e 74 65 78 74 4f | 6b 26 4d 61 73 74 65 72 |ContextO|k&Master|
|00001970| 4f 6b 3b 0d 0d 65 6e 64 | 3b 0d 0d 0d 7b 2d 2d 2d |Ok;..end|;...{---|
|00001980| 2d 2d 2d 2d 2d 2d 20 54 | 68 65 73 65 20 66 75 6e |------ T|hese fun|
|00001990| 63 74 69 6f 6e 20 67 65 | 6e 65 72 61 6c 6c 79 20 |ction ge|nerally |
|000019a0| 77 69 6c 6c 20 62 65 20 | 63 75 73 74 6f 6d 69 7a |will be |customiz|
|000019b0| 65 64 20 2d 2d 2d 2d 2d | 2d 2d 2d 2d 7d 0d 66 75 |ed -----|----}.fu|
|000019c0| 6e 63 74 69 6f 6e 20 74 | 54 61 73 6b 48 61 6e 64 |nction t|TaskHand|
|000019d0| 6c 65 72 2e 4d 73 67 55 | 73 61 62 6c 65 28 76 61 |ler.MsgU|sable(va|
|000019e0| 72 20 6d 73 67 3a 4d 73 | 67 50 74 72 29 3a 20 62 |r msg:Ms|gPtr): b|
|000019f0| 6f 6f 6c 65 61 6e 3b 0d | 62 65 67 69 6e 0d 09 4d |oolean;.|begin..M|
|00001a00| 73 67 55 73 61 62 6c 65 | 3a 3d 74 72 75 65 3b 0d |sgUsable|:=true;.|
|00001a10| 65 6e 64 3b 0d 0d 0d 7b | 2d 2d 2d 2d 2d 2d 2d 2d |end;...{|--------|
|00001a20| 2d 20 54 68 69 73 20 66 | 75 6e 63 74 69 6f 6e 20 |- This f|unction |
|00001a30| 6d 75 73 74 20 62 65 20 | 63 75 73 74 6f 6d 69 7a |must be |customiz|
|00001a40| 65 64 20 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ed -----|--------|
|00001a50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 7d 0d 7b 4b |--------|----}.{K|
|00001a60| 65 65 70 20 69 6e 20 6d | 69 6e 64 20 74 6f 20 63 |eep in m|ind to c|
|00001a70| 61 6c 6c 20 57 61 69 74 | 4e 65 78 74 45 76 65 6e |all Wait|NextEven|
|00001a80| 74 20 72 65 67 75 6c 61 | 72 6c 79 20 69 66 20 74 |t regula|rly if t|
|00001a90| 68 65 20 6d 65 73 73 61 | 67 65 20 65 76 61 6c 75 |he messa|ge evalu|
|00001aa0| 61 74 69 6f 6e 0d 74 61 | 6b 65 73 20 74 69 6d 65 |ation.ta|kes time|
|00001ab0| 2e 7d 0d 0d 70 72 6f 63 | 65 64 75 72 65 20 74 54 |.}..proc|edure tT|
|00001ac0| 61 73 6b 48 61 6e 64 6c | 65 72 2e 4d 73 67 45 76 |askHandl|er.MsgEv|
|00001ad0| 61 6c 75 61 74 69 6f 6e | 28 76 61 72 20 6d 73 67 |aluation|(var msg|
|00001ae0| 3a 4d 73 67 50 74 72 29 | 3b 0d 62 65 67 69 6e 0d |:MsgPtr)|;.begin.|
|00001af0| 0d 65 6e 64 3b 0d 0d 0d | 7b 70 72 6f 74 6f 74 79 |.end;...|{prototy|
|00001b00| 70 65 20 6d 65 73 73 61 | 67 65 20 68 61 6e 64 6c |pe messa|ge handl|
|00001b10| 65 72 73 2e 20 72 65 63 | 65 69 76 69 6e 67 20 70 |ers. rec|eiving p|
|00001b20| 61 72 74 7d 0d 0d 70 72 | 6f 63 65 64 75 72 65 20 |art}..pr|ocedure |
|00001b30| 74 54 61 73 6b 48 61 6e | 64 6c 65 72 2e 69 6e 69 |tTaskHan|dler.ini|
|00001b40| 74 3b 0d 63 6f 6e 73 74 | 0d 09 63 50 72 69 76 69 |t;.const|..cPrivi|
|00001b50| 6c 65 67 65 64 49 6e 74 | 65 72 76 61 6c 3d 36 30 |legedInt|erval=60|
|00001b60| 3b 09 7b 74 69 63 6b 73 | 20 62 65 66 6f 72 65 20 |;.{ticks| before |
|00001b70| 66 65 65 6c 69 6e 67 20 | 66 72 65 65 20 66 6f 72 |feeling |free for|
|00001b80| 20 61 20 6e 65 77 20 70 | 61 72 74 6e 65 72 7d 0d | a new p|artner}.|
|00001b90| 62 65 67 69 6e 0d 09 69 | 6e 68 65 72 69 74 65 64 |begin..i|nherited|
|00001ba0| 20 69 6e 69 74 3b 09 09 | 7b 77 69 6c 6c 20 63 61 | init;..|{will ca|
|00001bb0| 6c 6c 20 72 65 73 74 61 | 72 74 7d 0d 09 50 72 69 |ll resta|rt}..Pri|
|00001bc0| 76 69 6c 65 67 65 64 49 | 6e 74 65 72 76 61 6c 09 |vilegedI|nterval.|
|00001bd0| 3a 3d 63 50 72 69 76 69 | 6c 65 67 65 64 49 6e 74 |:=cPrivi|legedInt|
|00001be0| 65 72 76 61 6c 3b 0d 65 | 6e 64 3b 0d 0d 70 72 6f |erval;.e|nd;..pro|
|00001bf0| 63 65 64 75 72 65 20 74 | 54 61 73 6b 48 61 6e 64 |cedure t|TaskHand|
|00001c00| 6c 65 72 2e 72 65 73 74 | 61 72 74 3b 0d 62 65 67 |ler.rest|art;.beg|
|00001c10| 69 6e 0d 09 69 6e 68 65 | 72 69 74 65 64 20 72 65 |in..inhe|rited re|
|00001c20| 73 74 61 72 74 3b 0d 09 | 43 6f 6e 74 65 78 74 53 |start;..|ContextS|
|00001c30| 74 61 6d 70 3a 3d 30 3b | 0d 09 50 72 69 76 69 6c |tamp:=0;|..Privil|
|00001c40| 65 67 65 64 54 69 6d 65 | 6f 75 74 3a 3d 30 3b 09 |egedTime|out:=0;.|
|00001c50| 09 09 09 09 7b 6e 6f 77 | 7d 0d 09 77 69 74 68 20 |....{now|}..with |
|00001c60| 50 72 69 76 69 6c 65 67 | 65 64 41 64 64 72 20 64 |Privileg|edAddr d|
|00001c70| 6f 20 0d 09 62 65 67 69 | 6e 20 61 3a 3d 30 3b 70 |o ..begi|n a:=0;p|
|00001c80| 3a 3d 6c 6f 6e 67 69 6e | 74 28 27 3f 3f 3f 3f 27 |:=longin|t('????'|
|00001c90| 29 3b 20 65 6e 64 3b 09 | 09 7b 6c 6f 63 61 6c 2c |); end;.|.{local,|
|00001ca0| 20 61 6e 6f 6e 79 6d 6f | 75 73 7d 0d 09 55 73 61 | anonymo|us}..Usa|
|00001cb0| 62 6c 65 43 61 70 61 73 | 3a 3d 63 41 6e 79 43 61 |bleCapas|:=cAnyCa|
|00001cc0| 70 61 73 3b 0d 65 6e 64 | 3b 0d 0d 0d 0d 7b 3d 3d |pas;.end|;....{==|
|00001cd0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001ce0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001cf0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001d00| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001d10| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 7d 0d 7b 09 70 |========|===}.{.p|
|00001d20| 72 6f 74 6f 74 79 70 65 | 20 6d 65 73 73 61 67 65 |rototype| message|
|00001d30| 20 68 61 6e 64 6c 65 72 | 73 2e 20 73 65 6e 64 69 | handler|s. sendi|
|00001d40| 6e 67 20 70 61 72 74 09 | 7d 0d 0d 70 72 6f 63 65 |ng part.|}..proce|
|00001d50| 64 75 72 65 20 74 54 61 | 73 6b 47 65 6e 65 72 61 |dure tTa|skGenera|
|00001d60| 74 6f 72 2e 69 6e 69 74 | 3b 0d 63 6f 6e 73 74 09 |tor.init|;.const.|
|00001d70| 0d 09 63 54 69 63 6b 6c | 65 49 6e 74 65 72 76 61 |..cTickl|eInterva|
|00001d80| 6c 3d 36 30 3b 09 7b 74 | 69 63 6b 73 20 62 65 66 |l=60;.{t|icks bef|
|00001d90| 6f 72 65 20 74 72 79 69 | 6e 67 20 61 20 6e 65 77 |ore tryi|ng a new|
|00001da0| 20 70 61 72 74 6e 65 72 | 2e 20 73 65 74 20 62 79 | partner|. set by|
|00001db0| 20 6e 65 65 64 73 61 74 | 74 65 6e 74 69 6f 6e 7d | needsat|tention}|
|00001dc0| 0d 09 63 57 61 69 74 49 | 6e 74 65 72 76 61 6c 3d |..cWaitI|nterval=|
|00001dd0| 33 30 3b 09 09 7b 6d 69 | 6e 20 69 6e 74 65 72 76 |30;..{mi|n interv|
|00001de0| 61 6c 20 62 65 74 77 65 | 65 6e 20 74 61 73 6b 73 |al betwe|en tasks|
|00001df0| 2c 20 69 6e 20 74 69 63 | 6b 73 2e 20 73 65 74 20 |, in tic|ks. set |
|00001e00| 62 79 20 6e 65 77 74 61 | 73 6b 7d 0d 62 65 67 69 |by newta|sk}.begi|
|00001e10| 6e 0d 0d 09 7b 24 49 46 | 43 20 64 65 62 75 67 67 |n...{$IF|C debugg|
|00001e20| 69 6e 67 7d 20 69 66 20 | 73 70 61 72 65 20 74 68 |ing} if |spare th|
|00001e30| 65 6e 20 64 65 62 75 67 | 73 74 72 28 27 73 74 61 |en debug|str('sta|
|00001e40| 72 74 20 74 54 61 73 6b | 47 65 6e 65 72 61 74 6f |rt tTask|Generato|
|00001e50| 72 2e 69 6e 69 74 3b 67 | 27 29 3b 20 7b 24 45 4e |r.init;g|'); {$EN|
|00001e60| 44 43 7d 0d 0d 09 69 6e | 68 65 72 69 74 65 64 20 |DC}...in|herited |
|00001e70| 69 6e 69 74 3b 0d 09 54 | 69 63 6b 6c 65 49 6e 74 |init;..T|ickleInt|
|00001e80| 65 72 76 61 6c 3a 3d 63 | 54 69 63 6b 6c 65 49 6e |erval:=c|TickleIn|
|00001e90| 74 65 72 76 61 6c 3b 0d | 09 57 61 69 74 69 6e 74 |terval;.|.Waitint|
|00001ea0| 65 72 76 61 6c 3a 3d 63 | 57 61 69 74 49 6e 74 65 |erval:=c|WaitInte|
|00001eb0| 72 76 61 6c 3b 0d 65 6e | 64 3b 0d 0d 70 72 6f 63 |rval;.en|d;..proc|
|00001ec0| 65 64 75 72 65 20 74 54 | 61 73 6b 47 65 6e 65 72 |edure tT|askGener|
|00001ed0| 61 74 6f 72 2e 72 65 73 | 74 61 72 74 3b 0d 62 65 |ator.res|tart;.be|
|00001ee0| 67 69 6e 0d 09 7b 24 49 | 46 43 20 64 65 62 75 67 |gin..{$I|FC debug|
|00001ef0| 67 69 6e 67 7d 20 69 66 | 20 73 70 61 72 65 20 74 |ging} if| spare t|
|00001f00| 68 65 6e 20 64 65 62 75 | 67 73 74 72 28 27 73 74 |hen debu|gstr('st|
|00001f10| 61 72 74 20 74 54 61 73 | 6b 47 65 6e 65 72 61 74 |art tTas|kGenerat|
|00001f20| 6f 72 2e 73 74 61 72 74 | 3b 67 27 29 3b 20 7b 24 |or.start|;g'); {$|
|00001f30| 45 4e 44 43 7d 0d 09 69 | 6e 68 65 72 69 74 65 64 |ENDC}..i|nherited|
|00001f40| 20 72 65 73 74 61 72 74 | 3b 0d 09 63 6f 6e 74 65 | restart|;..conte|
|00001f50| 78 74 73 74 61 6d 70 3a | 3d 54 69 6d 65 53 74 61 |xtstamp:|=TimeSta|
|00001f60| 6d 70 3b 0d 65 6e 64 3b | 0d 0d 70 72 6f 63 65 64 |mp;.end;|..proced|
|00001f70| 75 72 65 20 74 54 61 73 | 6b 47 65 6e 65 72 61 74 |ure tTas|kGenerat|
|00001f80| 6f 72 2e 53 74 61 6d 70 | 28 4d 73 67 3a 4d 73 67 |or.Stamp|(Msg:Msg|
|00001f90| 50 74 72 29 3b 20 0d 62 | 65 67 69 6e 0d 09 69 6e |Ptr); .b|egin..in|
|00001fa0| 68 65 72 69 74 65 64 20 | 53 74 61 6d 70 28 4d 73 |herited |Stamp(Ms|
|00001fb0| 67 29 3b 0d 09 4d 73 67 | 5e 2e 4d 73 67 52 65 66 |g);..Msg|^.MsgRef|
|00001fc0| 65 72 65 6e 63 65 3a 3d | 43 6f 6e 74 65 78 74 53 |erence:=|ContextS|
|00001fd0| 74 61 6d 70 3b 0d 65 6e | 64 3b 0d 0d 66 75 6e 63 |tamp;.en|d;..func|
|00001fe0| 74 69 6f 6e 20 74 54 61 | 73 6b 47 65 6e 65 72 61 |tion tTa|skGenera|
|00001ff0| 74 6f 72 2e 4e 65 77 54 | 61 73 6b 28 76 61 72 20 |tor.NewT|ask(var |
|00002000| 4d 73 67 3a 4d 73 67 50 | 74 72 29 3a 62 6f 6f 6c |Msg:MsgP|tr):bool|
|00002010| 65 61 6e 3b 0d 62 65 67 | 69 6e 0d 09 69 66 20 4d |ean;.beg|in..if M|
|00002020| 73 67 3c 3e 6e 69 6c 20 | 74 68 65 6e 20 7b 73 65 |sg<>nil |then {se|
|00002030| 74 20 61 6c 6c 20 74 61 | 73 6b 20 67 65 6e 65 72 |t all ta|sk gener|
|00002040| 61 74 6f 72 20 73 70 65 | 63 69 66 69 63 20 64 65 |ator spe|cific de|
|00002050| 66 61 75 6c 74 73 7d 0d | 09 77 69 74 68 20 4d 73 |faults}.|.with Ms|
|00002060| 67 5e 20 64 6f 20 62 65 | 67 69 6e 0d 0d 09 09 4d |g^ do be|gin....M|
|00002070| 73 67 43 61 70 61 73 56 | 65 72 62 3a 3d 44 65 66 |sgCapasV|erb:=Def|
|00002080| 61 75 6c 74 43 61 70 61 | 73 56 65 72 62 3b 0d 09 |aultCapa|sVerb;..|
|00002090| 09 4d 73 67 52 65 66 65 | 72 65 6e 63 65 3a 3d 43 |.MsgRefe|rence:=C|
|000020a0| 6f 6e 74 65 78 74 53 74 | 61 6d 70 3b 0d 09 09 7b |ontextSt|amp;...{|
|000020b0| 24 49 46 43 20 70 61 72 | 61 6e 6f 69 61 7d 09 7b |$IFC par|anoia}.{|
|000020c0| 73 63 68 65 64 75 6c 65 | 72 20 73 65 74 73 20 61 |schedule|r sets a|
|000020d0| 6c 6c 20 66 69 65 6c 64 | 73 20 74 6f 20 7a 65 72 |ll field|s to zer|
|000020e0| 6f 7d 0d 09 09 4d 73 67 | 55 73 65 72 52 65 66 43 |o}...Msg|UserRefC|
|000020f0| 6f 6e 3a 3d 6c 6f 6e 67 | 69 6e 74 28 6e 69 6c 29 |on:=long|int(nil)|
|00002100| 3b 0d 09 09 4d 73 67 50 | 72 69 6f 53 69 7a 65 3a |;...MsgP|rioSize:|
|00002110| 3d 30 3b 0d 09 09 4d 73 | 67 43 6f 72 65 53 69 7a |=0;...Ms|gCoreSiz|
|00002120| 65 3a 3d 30 3b 0d 09 09 | 4d 73 67 50 72 69 6f 50 |e:=0;...|MsgPrioP|
|00002130| 74 72 3a 3d 6e 69 6c 3b | 0d 09 09 4d 73 67 43 6f |tr:=nil;|...MsgCo|
|00002140| 72 65 50 74 72 3a 3d 6e | 69 6c 3b 0d 09 09 7b 24 |rePtr:=n|il;...{$|
|00002150| 45 4e 44 43 7d 0d 09 65 | 6e 64 3b 0d 09 4e 65 77 |ENDC}..e|nd;..New|
|00002160| 54 61 73 6b 3a 3d 66 61 | 6c 73 65 3b 20 7b 62 75 |Task:=fa|lse; {bu|
|00002170| 74 20 6d 61 72 6b 20 61 | 73 20 75 73 65 6c 65 73 |t mark a|s useles|
|00002180| 73 20 73 6f 20 66 61 72 | 7d 0d 65 6e 64 3b 0d 0d |s so far|}.end;..|
|00002190| 0d 7b 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |.{======|========|
|000021a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000021b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000021c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000021d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 7d |========|=======}|
|000021e0| 0d 0d 7b 53 63 68 65 64 | 75 6c 65 72 20 69 6d 70 |..{Sched|uler imp|
|000021f0| 6c 65 6d 65 6e 74 61 74 | 69 6f 6e 7d 0d 0d 70 72 |lementat|ion}..pr|
|00002200| 6f 63 65 64 75 72 65 20 | 74 53 63 68 65 64 75 6c |ocedure |tSchedul|
|00002210| 65 72 2e 73 65 6e 64 6d | 65 73 73 61 67 65 28 6d |er.sendm|essage(m|
|00002220| 73 67 3a 4d 65 73 73 61 | 67 65 50 74 72 29 3b 0d |sg:Messa|gePtr);.|
|00002230| 09 7b 73 65 6e 64 20 74 | 68 65 20 6d 65 73 73 61 |.{send t|he messa|
|00002240| 67 65 20 69 6e 64 69 63 | 61 74 65 64 20 62 79 20 |ge indic|ated by |
|00002250| 6d 73 67 2e 20 63 6f 75 | 6c 64 20 62 65 20 72 65 |msg. cou|ld be re|
|00002260| 70 6c 61 63 65 64 20 62 | 79 20 61 20 64 69 72 65 |placed b|y a dire|
|00002270| 63 74 20 63 61 6c 6c 20 | 74 6f 0d 09 74 68 65 20 |ct call |to..the |
|00002280| 6d 65 73 73 61 67 65 20 | 73 79 73 74 65 6d 2e 20 |message |system. |
|00002290| 69 73 20 6b 65 70 74 20 | 68 65 72 65 20 6f 6e 6c |is kept |here onl|
|000022a0| 79 20 66 6f 72 20 65 61 | 73 69 65 72 20 74 72 61 |y for ea|sier tra|
|000022b0| 63 69 6e 67 2e 7d 0d 76 | 61 72 20 6e 65 77 4d 73 |cing.}.v|ar newMs|
|000022c0| 67 3a 4d 73 67 50 74 72 | 3b 0d 76 61 72 20 73 3a |g:MsgPtr|;.var s:|
|000022d0| 73 74 72 32 35 35 3b 0d | 62 65 67 69 6e 0d 09 7b |str255;.|begin..{|
|000022e0| 24 49 46 43 20 64 65 62 | 75 67 67 69 6e 67 7d 20 |$IFC deb|ugging} |
|000022f0| 69 66 20 73 70 61 72 65 | 20 74 68 65 6e 20 62 65 |if spare| then be|
|00002300| 67 69 6e 20 4d 73 67 54 | 6f 53 74 72 69 6e 67 28 |gin MsgT|oString(|
|00002310| 6d 73 67 2c 73 29 3b 64 | 65 62 75 67 73 74 72 28 |msg,s);d|ebugstr(|
|00002320| 63 6f 6e 63 61 74 28 27 | 74 53 63 68 65 64 75 6c |concat('|tSchedul|
|00002330| 65 72 2e 73 65 6e 64 6d | 65 73 73 61 67 65 20 27 |er.sendm|essage '|
|00002340| 2c 73 29 29 3b 65 6e 64 | 3b 20 7b 24 45 4e 44 43 |,s));end|; {$ENDC|
|00002350| 7d 0d 09 77 69 74 68 20 | 6d 73 67 5e 20 64 6f 20 |}..with |msg^ do |
|00002360| 62 65 67 69 6e 0d 09 09 | 50 72 65 76 44 65 73 74 |begin...|PrevDest|
|00002370| 3a 3d 6d 73 67 44 65 73 | 74 3b 0d 09 09 6d 73 67 |:=msgDes|t;...msg|
|00002380| 53 6f 75 72 63 65 3a 3d | 4d 79 41 64 64 72 28 4d |Source:=|MyAddr(M|
|00002390| 73 67 54 72 70 50 74 72 | 29 7b 4d 79 53 65 6c 66 |sgTrpPtr|){MySelf|
|000023a0| 3b 20 7d 7b a5 a5 a5 20 | 73 68 6f 75 6c 64 20 67 |; }{... |should g|
|000023b0| 6f 20 74 6f 20 6d 73 67 | 20 73 79 73 74 65 6d 7d |o to msg| system}|
|000023c0| 0d 09 65 6e 64 3b 0d 09 | 48 61 6e 64 6c 65 45 72 |..end;..|HandleEr|
|000023d0| 72 6f 72 28 70 53 65 6e | 64 4d 65 73 73 61 67 65 |ror(pSen|dMessage|
|000023e0| 2c 53 65 6e 64 4d 73 67 | 28 6d 73 67 2c 6e 65 77 |,SendMsg|(msg,new|
|000023f0| 6d 73 67 29 29 3b 0d 65 | 6e 64 3b 0d 0d 70 72 6f |msg));.e|nd;..pro|
|00002400| 63 65 64 75 72 65 20 74 | 53 63 68 65 64 75 6c 65 |cedure t|Schedule|
|00002410| 72 2e 72 65 70 6c 79 6d | 65 73 73 61 67 65 28 6d |r.replym|essage(m|
|00002420| 73 67 3a 4d 65 73 73 61 | 67 65 50 74 72 3b 66 6c |sg:Messa|gePtr;fl|
|00002430| 61 67 73 54 6f 41 64 64 | 3a 6c 6f 6e 67 69 6e 74 |agsToAdd|:longint|
|00002440| 29 3b 0d 09 7b 73 65 6e | 64 20 74 68 65 20 6d 65 |);..{sen|d the me|
|00002450| 73 73 61 67 65 20 69 6e | 64 69 63 61 74 65 64 20 |ssage in|dicated |
|00002460| 62 79 20 6d 73 67 2c 20 | 62 75 74 20 74 6f 20 6d |by msg, |but to m|
|00002470| 73 67 0d 09 74 61 72 67 | 65 74 7d 0d 09 0d 76 61 |sg..targ|et}...va|
|00002480| 72 20 0d 09 74 65 6d 70 | 4d 73 67 3a 4d 73 67 52 |r ..temp|Msg:MsgR|
|00002490| 65 63 3b 0d 09 6e 65 77 | 6d 73 67 3a 4d 73 67 50 |ec;..new|msg:MsgP|
|000024a0| 74 72 3b 0d 09 74 74 72 | 69 63 6b 3a 72 65 63 6f |tr;..ttr|ick:reco|
|000024b0| 72 64 20 0d 09 09 63 61 | 73 65 20 62 6f 6f 6c 65 |rd ...ca|se boole|
|000024c0| 61 6e 20 6f 66 0d 09 09 | 74 72 75 65 3a 28 61 2c |an of...|true:(a,|
|000024d0| 62 3a 69 6e 74 65 67 65 | 72 29 3b 0d 09 09 66 61 |b:intege|r);...fa|
|000024e0| 6c 73 65 3a 28 6c 3a 6c | 6f 6e 67 69 6e 74 29 0d |lse:(l:l|ongint).|
|000024f0| 09 65 6e 64 3b 0d 09 74 | 65 6d 70 73 74 72 3a 73 |.end;..t|empstr:s|
|00002500| 74 72 32 35 35 3b 0d 62 | 65 67 69 6e 0d 09 74 65 |tr255;.b|egin..te|
|00002510| 6d 70 4d 73 67 3a 3d 6d | 73 67 5e 3b 20 7b 6e 65 |mpMsg:=m|sg^; {ne|
|00002520| 65 64 65 64 3a 20 4d 73 | 67 52 65 66 65 72 65 6e |eded: Ms|gReferen|
|00002530| 63 65 2c 20 4d 73 67 54 | 72 70 50 74 72 2c c9 20 |ce, MsgT|rpPtr,. |
|00002540| 73 74 69 6c 6c 20 74 6f | 20 73 70 65 63 69 66 79 |still to| specify|
|00002550| 7d 0d 09 77 69 74 68 20 | 74 65 6d 70 6d 73 67 20 |}..with |tempmsg |
|00002560| 64 6f 20 0d 09 62 65 67 | 69 6e 0d 09 09 4d 73 67 |do ..beg|in...Msg|
|00002570| 44 65 73 74 3a 3d 4d 73 | 67 52 65 70 6c 79 3b 0d |Dest:=Ms|gReply;.|
|00002580| 09 09 7b 4d 73 67 52 65 | 70 6c 79 3a 3d 4d 79 53 |..{MsgRe|ply:=MyS|
|00002590| 65 6c 66 3b 20 2d 2d 20 | 6e 6f 20 63 6f 6d 70 6c |elf; -- |no compl|
|000025a0| 61 69 6e 74 73 20 26 72 | 65 73 75 6c 74 73 20 73 |aints &r|esults s|
|000025b0| 68 6f 75 6c 64 20 6b 65 | 65 70 20 61 74 20 72 65 |hould ke|ep at re|
|000025c0| 70 6c 79 20 61 64 64 72 | 2e 0d 09 09 09 09 09 73 |ply addr|.......s|
|000025d0| 74 69 6c 6c 20 74 6f 20 | 64 69 73 63 75 73 73 3a |till to |discuss:|
|000025e0| 20 70 69 70 65 6c 69 6e | 65 20 76 65 72 73 75 73 | pipelin|e versus|
|000025f0| 20 6d 61 73 74 65 72 2d | 73 6c 61 76 65 73 7d 0d | master-|slaves}.|
|00002600| 09 09 4d 73 67 43 61 70 | 61 73 56 65 72 62 3a 3d |..MsgCap|asVerb:=|
|00002610| 62 6f 72 28 62 6f 72 28 | 4d 73 67 43 61 70 61 73 |bor(bor(|MsgCapas|
|00002620| 56 65 72 62 2c 63 4d 73 | 67 52 65 70 6c 79 29 2c |Verb,cMs|gReply),|
|00002630| 66 6c 61 67 73 54 6f 41 | 64 64 29 3b 0d 09 65 6e |flagsToA|dd);..en|
|00002640| 64 3b 0d 09 7b 24 49 46 | 43 20 66 61 6c 73 65 7d |d;..{$IF|C false}|
|00002650| 0d 09 6d 73 67 54 6f 53 | 74 72 69 6e 67 28 40 74 |..msgToS|tring(@t|
|00002660| 65 6d 70 4d 73 67 2c 74 | 65 6d 70 73 74 72 29 3b |empMsg,t|empstr);|
|00002670| 0d 09 6c 6f 67 73 74 72 | 74 69 6d 65 28 63 6f 6e |..logstr|time(con|
|00002680| 63 61 74 28 27 72 65 70 | 6c 79 20 27 2c 74 65 6d |cat('rep|ly ',tem|
|00002690| 70 73 74 72 29 29 3b 0d | 09 7b 24 45 4e 44 43 7d |pstr));.|.{$ENDC}|
|000026a0| 0d 09 77 69 74 68 20 74 | 65 6d 70 4d 73 67 20 64 |..with t|empMsg d|
|000026b0| 6f 20 62 65 67 69 6e 0d | 09 09 6d 73 67 53 6f 75 |o begin.|..msgSou|
|000026c0| 72 63 65 3a 3d 4d 79 41 | 64 64 72 28 4d 73 67 54 |rce:=MyA|ddr(MsgT|
|000026d0| 72 70 50 74 72 29 3b 20 | 7b a5 a5 a5 20 73 68 6f |rpPtr); |{... sho|
|000026e0| 75 6c 64 20 67 6f 20 74 | 6f 20 6d 73 67 20 73 79 |uld go t|o msg sy|
|000026f0| 73 74 65 6d 7d 0d 09 65 | 6e 64 3b 0d 09 7b 24 49 |stem}..e|nd;..{$I|
|00002700| 46 43 20 64 65 62 75 67 | 67 69 6e 67 7d 20 69 66 |FC debug|ging} if|
|00002710| 20 73 70 61 72 65 20 74 | 68 65 6e 20 62 65 67 69 | spare t|hen begi|
|00002720| 6e 20 4d 73 67 54 6f 53 | 74 72 69 6e 67 28 6d 73 |n MsgToS|tring(ms|
|00002730| 67 2c 73 29 3b 64 65 62 | 75 67 73 74 72 28 63 6f |g,s);deb|ugstr(co|
|00002740| 6e 63 61 74 28 27 74 53 | 63 68 65 64 75 6c 65 72 |ncat('tS|cheduler|
|00002750| 2e 72 65 70 6c 79 6d 65 | 73 73 61 67 65 20 27 2c |.replyme|ssage ',|
|00002760| 73 29 29 3b 65 6e 64 3b | 20 7b 24 45 4e 44 43 7d |s));end;| {$ENDC}|
|00002770| 0d 0d 09 48 61 6e 64 6c | 65 45 72 72 6f 72 28 70 |...Handl|eError(p|
|00002780| 52 65 70 6c 79 4d 65 73 | 73 61 67 65 2c 53 65 6e |ReplyMes|sage,Sen|
|00002790| 64 4d 73 67 28 40 74 65 | 6d 70 4d 73 67 2c 6e 65 |dMsg(@te|mpMsg,ne|
|000027a0| 77 6d 73 67 29 29 3b 0d | 65 6e 64 3b 0d 0d 70 72 |wmsg));.|end;..pr|
|000027b0| 6f 63 65 64 75 72 65 20 | 74 53 63 68 65 64 75 6c |ocedure |tSchedul|
|000027c0| 65 72 2e 69 6e 69 74 3b | 0d 76 61 72 20 74 65 6d |er.init;|.var tem|
|000027d0| 70 73 74 72 3a 73 74 72 | 32 35 35 3b 74 65 6d 70 |pstr:str|255;temp|
|000027e0| 61 64 64 72 3a 4d 73 67 | 41 64 64 72 3b 0d 62 65 |addr:Msg|Addr;.be|
|000027f0| 67 69 6e 0d 09 7b 24 49 | 46 43 20 64 65 62 75 67 |gin..{$I|FC debug|
|00002800| 67 69 6e 67 7d 20 69 66 | 20 73 70 61 72 65 20 74 |ging} if| spare t|
|00002810| 68 65 6e 20 64 65 62 75 | 67 73 74 72 28 27 73 74 |hen debu|gstr('st|
|00002820| 61 72 74 20 74 53 63 68 | 65 64 75 6c 65 72 2e 69 |art tSch|eduler.i|
|00002830| 6e 69 74 3b 67 27 29 3b | 20 7b 24 45 4e 44 43 7d |nit;g');| {$ENDC}|
|00002840| 0d 0d 09 6d 79 53 65 6c | 66 3a 3d 47 65 74 4e 65 |...mySel|f:=GetNe|
|00002850| 74 57 6f 72 6b 41 64 64 | 72 3b 0d 09 4d 79 54 72 |tWorkAdd|r;..MyTr|
|00002860| 61 6e 73 70 6f 72 74 3a | 3d 6e 69 6c 3b 0d 09 0d |ansport:|=nil;...|
|00002870| 09 74 65 6d 70 41 64 64 | 72 3a 3d 4d 79 53 65 6c |.tempAdd|r:=MySel|
|00002880| 66 3b 0d 09 61 64 64 72 | 54 6f 53 74 72 69 6e 67 |f;..addr|ToString|
|00002890| 28 74 65 6d 70 41 64 64 | 72 2c 74 65 6d 70 73 74 |(tempAdd|r,tempst|
|000028a0| 72 29 3b 0d 09 6c 6f 67 | 73 74 72 69 6e 67 28 63 |r);..log|string(c|
|000028b0| 6f 6e 63 61 74 28 27 74 | 53 63 68 65 64 75 6c 65 |oncat('t|Schedule|
|000028c0| 72 2e 69 6e 69 74 20 27 | 2c 74 65 6d 70 73 74 72 |r.init '|,tempstr|
|000028d0| 29 29 3b 0d 0d 09 54 61 | 73 6b 48 61 6e 64 6c 65 |));...Ta|skHandle|
|000028e0| 72 3a 3d 6e 69 6c 3b 0d | 09 54 61 73 6b 47 65 6e |r:=nil;.|.TaskGen|
|000028f0| 65 72 61 74 6f 72 3a 3d | 6e 69 6c 3b 0d 09 43 6f |erator:=|nil;..Co|
|00002900| 48 61 6e 64 6c 65 72 3a | 3d 4e 69 6c 3b 0d 0d 09 |Handler:|=Nil;...|
|00002910| 45 72 72 51 75 69 65 74 | 3a 3d 74 72 75 65 3b 0d |ErrQuiet|:=true;.|
|00002920| 09 45 72 72 3a 3d 4e 6f | 45 72 72 3b 0d 09 72 65 |.Err:=No|Err;..re|
|00002930| 73 65 74 3b 0d 0d 09 7b | 74 68 69 73 20 73 68 6f |set;...{|this sho|
|00002940| 75 6c 64 20 62 65 20 64 | 6f 6e 65 20 6f 6e 6c 79 |uld be d|one only|
|00002950| 20 6f 6e 20 73 65 6e 64 | 7d 0d 09 69 66 20 4d 61 | on send|}..if Ma|
|00002960| 73 74 65 72 20 74 68 65 | 6e 20 69 66 20 45 72 72 |ster the|n if Err|
|00002970| 3d 4e 6f 45 72 72 20 74 | 68 65 6e 20 48 61 6e 64 |=NoErr t|hen Hand|
|00002980| 6c 65 45 72 72 6f 72 28 | 70 49 6e 69 74 2c 4e 6c |leError(|pInit,Nl|
|00002990| 53 74 61 72 74 29 3b 0d | 09 45 72 72 51 75 69 65 |Start);.|.ErrQuie|
|000029a0| 74 3a 3d 66 61 6c 73 65 | 3b 0d 65 6e 64 3b 0d 0d |t:=false|;.end;..|
|000029b0| 70 72 6f 63 65 64 75 72 | 65 20 74 53 63 68 65 64 |procedur|e tSched|
|000029c0| 75 6c 65 72 2e 72 65 73 | 65 74 3b 0d 62 65 67 69 |uler.res|et;.begi|
|000029d0| 6e 0d 09 7b 24 49 46 43 | 20 64 65 62 75 67 67 69 |n..{$IFC| debuggi|
|000029e0| 6e 67 7d 20 69 66 20 73 | 70 61 72 65 20 74 68 65 |ng} if s|pare the|
|000029f0| 6e 20 64 65 62 75 67 73 | 74 72 28 27 73 74 61 72 |n debugs|tr('star|
|00002a00| 74 20 74 53 63 68 65 64 | 75 6c 65 72 2e 72 65 73 |t tSched|uler.res|
|00002a10| 65 74 3b 73 63 3b 67 27 | 29 3b 20 7b 24 45 4e 44 |et;sc;g'|); {$END|
|00002a20| 43 7d 0d 0d 09 7b 69 66 | 20 73 65 6e 64 69 6e 67 |C}...{if| sending|
|00002a30| 20 74 68 65 6e 20 48 61 | 6e 64 6c 65 45 72 72 6f | then Ha|ndleErro|
|00002a40| 72 28 70 55 6e 64 65 66 | 69 6e 65 64 2c 6e 6c 53 |r(pUndef|ined,nlS|
|00002a50| 74 6f 70 29 3b 7d 0d 0d | 09 7b 48 61 6e 64 6c 65 |top);}..|.{Handle|
|00002a60| 45 72 72 6f 72 28 70 55 | 6e 64 65 66 69 6e 65 64 |Error(pU|ndefined|
|00002a70| 2c 66 6c 75 73 68 4d 73 | 67 29 3b 20 7d 7b 3f 3f |,flushMs|g); }{??|
|00002a80| 7d 0d 0d 09 73 65 6e 64 | 69 6e 67 3a 3d 66 61 6c |}...send|ing:=fal|
|00002a90| 73 65 3b 0d 09 72 65 63 | 65 69 76 69 6e 67 3a 3d |se;..rec|eiving:=|
|00002aa0| 66 61 6c 73 65 3b 0d 09 | 50 72 65 76 44 65 73 74 |false;..|PrevDest|
|00002ab0| 3a 3d 4d 79 53 65 6c 66 | 3b 09 7b 77 69 6c 6c 20 |:=MySelf|;.{will |
|00002ac0| 69 6e 20 67 65 6e 65 72 | 61 6c 20 6f 6e 6c 79 20 |in gener|al only |
|00002ad0| 64 65 66 69 6e 65 20 74 | 68 65 20 74 79 70 65 7d |define t|he type}|
|00002ae0| 0d 09 50 72 65 76 44 65 | 73 74 2e 61 3a 3d 4e 4c |..PrevDe|st.a:=NL|
|00002af0| 4e 65 78 74 28 50 72 65 | 76 44 65 73 74 2e 61 29 |Next(Pre|vDest.a)|
|00002b00| 3b 0d 09 54 61 73 6b 41 | 64 64 72 3a 3d 4d 79 53 |;..TaskA|ddr:=MyS|
|00002b10| 65 6c 66 3b 09 7b 3f 3f | 3f 3f 3f 3f 3f 3f 3f 3f |elf;.{??|????????|
|00002b20| 7d 0d 09 69 66 20 54 61 | 73 6b 48 61 6e 64 6c 65 |}..if Ta|skHandle|
|00002b30| 72 3c 3e 6e 69 6c 20 74 | 68 65 6e 20 54 61 73 6b |r<>nil t|hen Task|
|00002b40| 48 61 6e 64 6c 65 72 2e | 52 65 73 74 61 72 74 3b |Handler.|Restart;|
|00002b50| 0d 09 69 66 20 54 61 73 | 6b 47 65 6e 65 72 61 74 |..if Tas|kGenerat|
|00002b60| 6f 72 3c 3e 6e 69 6c 20 | 74 68 65 6e 20 54 61 73 |or<>nil |then Tas|
|00002b70| 6b 47 65 6e 65 72 61 74 | 6f 72 2e 52 65 73 74 61 |kGenerat|or.Resta|
|00002b80| 72 74 3b 0d 09 69 66 20 | 43 6f 68 61 6e 64 6c 65 |rt;..if |Cohandle|
|00002b90| 72 3c 3e 6e 69 6c 20 74 | 68 65 6e 20 43 6f 48 61 |r<>nil t|hen CoHa|
|00002ba0| 6e 64 6c 65 72 2e 52 65 | 73 65 74 3b 0d 09 45 72 |ndler.Re|set;..Er|
|00002bb0| 72 3a 3d 4e 6f 45 72 72 | 3b 0d 09 7b 48 61 6e 64 |r:=NoErr|;..{Hand|
|00002bc0| 6c 65 45 72 72 6f 72 28 | 70 55 6e 64 65 66 69 6e |leError(|pUndefin|
|00002bd0| 65 64 2c 66 6c 75 73 68 | 4d 73 67 29 3b 7d 7b 77 |ed,flush|Msg);}{w|
|00002be0| 6f 75 6c 64 20 63 61 6e | 63 65 6c 20 6c 61 75 6e |ould can|cel laun|
|00002bf0| 63 68 20 6d 65 73 73 61 | 67 65 20 61 73 20 77 65 |ch messa|ge as we|
|00002c00| 6c 6c 7d 0d 65 6e 64 3b | 0d 0d 70 72 6f 63 65 64 |ll}.end;|..proced|
|00002c10| 75 72 65 20 74 53 63 68 | 65 64 75 6c 65 72 2e 66 |ure tSch|eduler.f|
|00002c20| 72 65 65 3b 20 6f 76 65 | 72 72 69 64 65 3b 0d 62 |ree; ove|rride;.b|
|00002c30| 65 67 69 6e 0d 09 7b 24 | 49 46 43 20 64 65 62 75 |egin..{$|IFC debu|
|00002c40| 67 67 69 6e 67 7d 20 69 | 66 20 73 70 61 72 65 20 |gging} i|f spare |
|00002c50| 74 68 65 6e 20 64 65 62 | 75 67 73 74 72 28 27 73 |then deb|ugstr('s|
|00002c60| 74 61 72 74 20 74 53 63 | 68 65 64 75 6c 65 72 2e |tart tSc|heduler.|
|00002c70| 66 72 65 65 3b 67 27 29 | 3b 7b 24 45 4e 44 43 7d |free;g')|;{$ENDC}|
|00002c80| 0d 09 72 65 73 65 74 3b | 0d 09 69 66 20 54 61 73 |..reset;|..if Tas|
|00002c90| 6b 48 61 6e 64 6c 65 72 | 3c 3e 6e 69 6c 20 74 68 |kHandler|<>nil th|
|00002ca0| 65 6e 20 54 61 73 6b 48 | 61 6e 64 6c 65 72 2e 66 |en TaskH|andler.f|
|00002cb0| 72 65 65 3b 0d 09 69 66 | 20 54 61 73 6b 47 65 6e |ree;..if| TaskGen|
|00002cc0| 65 72 61 74 6f 72 3c 3e | 6e 69 6c 20 74 68 65 6e |erator<>|nil then|
|00002cd0| 20 54 61 73 6b 47 65 6e | 65 72 61 74 6f 72 2e 66 | TaskGen|erator.f|
|00002ce0| 72 65 65 3b 0d 0d 09 45 | 72 72 51 75 69 65 74 3a |ree;...E|rrQuiet:|
|00002cf0| 3d 74 72 75 65 3b 09 7b | a5 a5 a5 20 64 6f 20 6e |=true;.{|... do n|
|00002d00| 6f 74 20 72 65 70 6f 72 | 74 20 65 72 72 6f 72 73 |ot repor|t errors|
|00002d10| 20 6f 6e 20 75 6e 69 6e | 73 74 61 6c 6c 69 6e 67 | on unin|stalling|
|00002d20| 2e 20 53 68 6f 75 6c 64 | 20 77 65 20 3f 3f 7d 0d |. Should| we ??}.|
|00002d30| 09 69 6e 68 65 72 69 74 | 65 64 20 66 72 65 65 3b |.inherit|ed free;|
|00002d40| 0d 65 6e 64 3b 0d 0d 70 | 72 6f 63 65 64 75 72 65 |.end;..p|rocedure|
|00002d50| 20 74 53 63 68 65 64 75 | 6c 65 72 2e 73 65 74 53 | tSchedu|ler.setS|
|00002d60| 65 6e 64 69 6e 67 28 6f | 6e 6f 66 66 3a 62 6f 6f |ending(o|noff:boo|
|00002d70| 6c 65 61 6e 29 3b 0d 62 | 65 67 69 6e 0d 09 69 66 |lean);.b|egin..if|
|00002d80| 20 6f 6e 4f 66 66 20 74 | 68 65 6e 20 62 65 67 69 | onOff t|hen begi|
|00002d90| 6e 0d 09 09 69 66 20 28 | 54 61 73 6b 48 61 6e 64 |n...if (|TaskHand|
|00002da0| 6c 65 72 3c 3e 6e 69 6c | 29 20 26 20 28 45 72 72 |ler<>nil|) & (Err|
|00002db0| 3d 4e 6f 45 72 72 29 20 | 74 68 65 6e 20 73 65 6e |=NoErr) |then sen|
|00002dc0| 64 69 6e 67 3a 3d 74 72 | 75 65 20 0d 09 65 6e 64 |ding:=tr|ue ..end|
|00002dd0| 0d 09 65 6c 73 65 20 73 | 65 6e 64 69 6e 67 3a 3d |..else s|ending:=|
|00002de0| 66 61 6c 73 65 3b 0d 65 | 6e 64 3b 0d 0d 70 72 6f |false;.e|nd;..pro|
|00002df0| 63 65 64 75 72 65 20 74 | 53 63 68 65 64 75 6c 65 |cedure t|Schedule|
|00002e00| 72 2e 73 65 74 52 65 63 | 65 69 76 69 6e 67 28 6f |r.setRec|eiving(o|
|00002e10| 6e 6f 66 66 3a 62 6f 6f | 6c 65 61 6e 29 3b 0d 62 |noff:boo|lean);.b|
|00002e20| 65 67 69 6e 0d 09 69 66 | 20 6f 6e 4f 66 66 20 74 |egin..if| onOff t|
|00002e30| 68 65 6e 20 20 62 65 67 | 69 6e 0d 09 09 69 66 20 |hen beg|in...if |
|00002e40| 28 54 61 73 6b 47 65 6e | 65 72 61 74 6f 72 3c 3e |(TaskGen|erator<>|
|00002e50| 6e 69 6c 29 20 26 20 28 | 45 72 72 3d 4e 6f 45 72 |nil) & (|Err=NoEr|
|00002e60| 72 29 20 74 68 65 6e 20 | 52 65 63 65 69 76 69 6e |r) then |Receivin|
|00002e70| 67 3a 3d 74 72 75 65 20 | 0d 09 65 6e 64 0d 09 65 |g:=true |..end..e|
|00002e80| 6c 73 65 20 52 65 63 65 | 69 76 69 6e 67 3a 3d 66 |lse Rece|iving:=f|
|00002e90| 61 6c 73 65 3b 0d 65 6e | 64 3b 0d 0d 50 72 6f 63 |alse;.en|d;..Proc|
|00002ea0| 65 64 75 72 65 20 74 53 | 63 68 65 64 75 6c 65 72 |edure tS|cheduler|
|00002eb0| 2e 49 6e 69 74 54 61 73 | 6b 48 61 6e 64 6c 65 72 |.InitTas|kHandler|
|00002ec0| 28 6e 65 77 54 61 73 6b | 48 61 6e 64 6c 65 72 3a |(newTask|Handler:|
|00002ed0| 74 54 61 73 6b 48 61 6e | 64 6c 65 72 29 3b 0d 62 |tTaskHan|dler);.b|
|00002ee0| 65 67 69 6e 0d 09 7b 24 | 49 46 43 20 64 65 62 75 |egin..{$|IFC debu|
|00002ef0| 67 67 69 6e 67 7d 20 09 | 69 66 20 73 70 61 72 65 |gging} .|if spare|
|00002f00| 20 74 68 65 6e 20 64 65 | 62 75 67 73 74 72 28 27 | then de|bugstr('|
|00002f10| 73 74 61 72 74 20 74 53 | 63 68 65 64 75 6c 65 72 |start tS|cheduler|
|00002f20| 2e 49 6e 69 74 54 61 73 | 6b 48 61 6e 64 6c 65 72 |.InitTas|kHandler|
|00002f30| 3b 67 27 29 3b 20 7b 24 | 45 4e 44 43 7d 0d 09 54 |;g'); {$|ENDC}..T|
|00002f40| 61 73 6b 48 61 6e 64 6c | 65 72 3a 3d 6e 65 77 54 |askHandl|er:=newT|
|00002f50| 61 73 6b 48 61 6e 64 6c | 65 72 3b 0d 09 69 66 20 |askHandl|er;..if |
|00002f60| 54 61 73 6b 48 61 6e 64 | 6c 65 72 3d 6e 69 6c 20 |TaskHand|ler=nil |
|00002f70| 74 68 65 6e 20 20 48 61 | 6e 64 6c 65 45 72 72 6f |then Ha|ndleErro|
|00002f80| 72 28 70 55 6e 64 65 66 | 69 6e 65 64 2c 63 4e 69 |r(pUndef|ined,cNi|
|00002f90| 6c 45 72 72 6f 72 29 0d | 09 65 6c 73 65 20 62 65 |lError).|.else be|
|00002fa0| 67 69 6e 0d 09 09 7b 73 | 65 74 20 74 53 63 68 65 |gin...{s|et tSche|
|00002fb0| 64 75 6c 65 72 20 70 72 | 6f 70 6f 73 61 6c 73 2c |duler pr|oposals,|
|00002fc0| 20 69 66 20 61 6e 79 7d | 0d 09 09 54 61 73 6b 48 | if any}|...TaskH|
|00002fd0| 61 6e 64 6c 65 72 2e 69 | 6e 69 74 3b 0d 09 65 6e |andler.i|nit;..en|
|00002fe0| 64 3b 0d 09 52 65 63 65 | 69 76 69 6e 67 3a 3d 28 |d;..Rece|iving:=(|
|00002ff0| 54 61 73 6b 48 61 6e 64 | 6c 65 72 3c 3e 6e 69 6c |TaskHand|ler<>nil|
|00003000| 29 3b 0d 0d 09 7b a5 a5 | a5 a5 a5 73 68 6f 75 6c |);...{..|...shoul|
|00003010| 64 20 20 63 6c 65 61 72 | 20 70 65 6e 64 69 6e 67 |d clear| pending|
|00003020| 20 6d 65 73 73 61 67 65 | 73 2e 7d 0d 09 7b 24 49 | message|s.}..{$I|
|00003030| 46 43 20 64 65 62 75 67 | 67 69 6e 67 7d 20 69 66 |FC debug|ging} if|
|00003040| 20 72 65 63 65 69 76 69 | 6e 67 20 26 20 73 70 61 | receivi|ng & spa|
|00003050| 72 65 20 74 68 65 6e 20 | 64 65 62 75 67 73 74 72 |re then |debugstr|
|00003060| 28 27 74 53 63 68 65 64 | 75 6c 65 72 2e 49 6e 69 |('tSched|uler.Ini|
|00003070| 74 54 61 73 6b 48 61 6e | 64 6c 65 72 20 72 65 63 |tTaskHan|dler rec|
|00003080| 65 69 76 69 6e 67 3b 67 | 27 29 3b 20 7b 24 45 4e |eiving;g|'); {$EN|
|00003090| 44 43 7d 0d 0d 65 6e 64 | 3b 0d 0d 0d 50 72 6f 63 |DC}..end|;...Proc|
|000030a0| 65 64 75 72 65 20 74 53 | 63 68 65 64 75 6c 65 72 |edure tS|cheduler|
|000030b0| 2e 49 6e 69 74 54 61 73 | 6b 47 65 6e 65 72 61 74 |.InitTas|kGenerat|
|000030c0| 6f 72 28 6e 65 77 54 61 | 73 6b 47 65 6e 65 72 61 |or(newTa|skGenera|
|000030d0| 74 6f 72 3a 74 54 61 73 | 6b 47 65 6e 65 72 61 74 |tor:tTas|kGenerat|
|000030e0| 6f 72 29 3b 0d 62 65 67 | 69 6e 0d 09 7b 24 49 46 |or);.beg|in..{$IF|
|000030f0| 43 20 64 65 62 75 67 67 | 69 6e 67 7d 20 09 69 66 |C debugg|ing} .if|
|00003100| 20 73 70 61 72 65 20 74 | 68 65 6e 20 64 65 62 75 | spare t|hen debu|
|00003110| 67 73 74 72 28 27 73 74 | 61 72 74 20 74 53 63 68 |gstr('st|art tSch|
|00003120| 65 64 75 6c 65 72 2e 69 | 6e 69 74 54 61 73 6b 47 |eduler.i|nitTaskG|
|00003130| 65 6e 65 72 61 74 6f 72 | 3b 67 27 29 3b 20 09 7b |enerator|;g'); .{|
|00003140| 24 45 4e 44 43 7d 0d 09 | 7b 48 61 6e 64 6c 65 45 |$ENDC}..|{HandleE|
|00003150| 72 72 6f 72 28 70 55 6e | 64 65 66 69 6e 65 64 2c |rror(pUn|defined,|
|00003160| 6e 6c 53 74 61 72 74 29 | 3b 7d 20 7b 73 68 6f 75 |nlStart)|;} {shou|
|00003170| 6c 64 20 72 65 61 6c 6c | 79 20 67 6f 20 68 65 72 |ld reall|y go her|
|00003180| 65 2e 20 42 75 74 20 74 | 6f 20 61 6c 6c 6f 77 20 |e. But t|o allow |
|00003190| 66 6f 72 20 6a 75 6d 70 | 20 73 74 61 72 74 73 c9 |for jump| starts.|
|000031a0| 7d 0d 09 54 61 73 6b 49 | 64 3a 3d 54 69 6d 65 53 |}..TaskI|d:=TimeS|
|000031b0| 74 61 6d 70 3b 09 7b 20 | 61 20 72 61 6e 64 6f 6d |tamp;.{ |a random|
|000031c0| 20 70 72 6f 70 6f 73 61 | 6c 7d 0d 09 54 61 73 6b | proposa|l}..Task|
|000031d0| 49 74 65 72 61 74 69 6f | 6e 73 3a 3d 6d 61 78 69 |Iteratio|ns:=maxi|
|000031e0| 6e 74 3b 09 09 7b 77 65 | 20 77 61 6e 74 20 74 6f |nt;..{we| want to|
|000031f0| 20 64 6f 20 62 69 6e 61 | 72 79 20 73 65 61 72 63 | do bina|ry searc|
|00003200| 68 20 66 72 6f 6d 20 68 | 65 72 65 7d 0d 0d 09 54 |h from h|ere}...T|
|00003210| 61 73 6b 47 65 6e 65 72 | 61 74 6f 72 3a 3d 6e 65 |askGener|ator:=ne|
|00003220| 77 54 61 73 6b 47 65 6e | 65 72 61 74 6f 72 3b 0d |wTaskGen|erator;.|
|00003230| 09 69 66 20 54 61 73 6b | 47 65 6e 65 72 61 74 6f |.if Task|Generato|
|00003240| 72 3d 6e 69 6c 20 74 68 | 65 6e 20 48 61 6e 64 6c |r=nil th|en Handl|
|00003250| 65 45 72 72 6f 72 28 70 | 55 6e 64 65 66 69 6e 65 |eError(p|Undefine|
|00003260| 64 2c 63 4e 69 6c 45 72 | 72 6f 72 29 20 65 6c 73 |d,cNilEr|ror) els|
|00003270| 65 0d 09 62 65 67 69 6e | 0d 09 09 77 69 74 68 20 |e..begin|...with |
|00003280| 54 61 73 6b 47 65 6e 65 | 72 61 74 6f 72 20 64 6f |TaskGene|rator do|
|00003290| 20 09 09 7b 73 65 74 20 | 74 53 63 68 65 64 75 6c | ..{set |tSchedul|
|000032a0| 65 72 20 70 72 6f 70 6f | 73 61 6c 73 2c 20 69 66 |er propo|sals, if|
|000032b0| 20 61 6e 79 7d 0d 09 09 | 62 65 67 69 6e 0d 09 09 | any}...|begin...|
|000032c0| 09 44 65 66 61 75 6c 74 | 43 61 70 61 73 56 65 72 |.Default|CapasVer|
|000032d0| 62 3a 3d 63 41 6e 79 43 | 61 70 61 73 3b 0d 09 09 |b:=cAnyC|apas;...|
|000032e0| 65 6e 64 3b 0d 09 09 54 | 61 73 6b 47 65 6e 65 72 |end;...T|askGener|
|000032f0| 61 74 6f 72 2e 69 6e 69 | 74 3b 0d 09 09 77 69 74 |ator.ini|t;...wit|
|00003300| 68 20 54 61 73 6b 47 65 | 6e 65 72 61 74 6f 72 20 |h TaskGe|nerator |
|00003310| 64 6f 0d 09 09 62 65 67 | 69 6e 0d 09 09 09 4e 65 |do...beg|in....Ne|
|00003320| 78 74 54 69 63 6b 6c 65 | 3a 3d 74 69 63 6b 43 6f |xtTickle|:=tickCo|
|00003330| 75 6e 74 2b 54 69 63 6b | 6c 65 49 6e 74 65 72 76 |unt+Tick|leInterv|
|00003340| 61 6c 3b 0d 09 09 09 4e | 65 78 74 57 61 69 74 3a |al;....N|extWait:|
|00003350| 3d 74 69 63 6b 43 6f 75 | 6e 74 2b 57 61 69 74 49 |=tickCou|nt+WaitI|
|00003360| 6e 74 65 72 76 61 6c 3b | 0d 09 09 65 6e 64 3b 0d |nterval;|...end;.|
|00003370| 09 65 6e 64 3b 0d 09 73 | 65 6e 64 69 6e 67 3a 3d |.end;..s|ending:=|
|00003380| 28 54 61 73 6b 47 65 6e | 65 72 61 74 6f 72 3c 3e |(TaskGen|erator<>|
|00003390| 6e 69 6c 29 3b 0d 09 7b | 24 49 46 43 20 64 65 62 |nil);..{|$IFC deb|
|000033a0| 75 67 67 69 6e 67 7d 20 | 69 66 20 73 70 61 72 65 |ugging} |if spare|
|000033b0| 20 74 68 65 6e 20 64 65 | 62 75 67 73 74 72 28 27 | then de|bugstr('|
|000033c0| 73 74 6f 70 20 74 53 63 | 68 65 64 75 6c 65 72 2e |stop tSc|heduler.|
|000033d0| 69 6e 69 74 54 61 73 6b | 47 65 6e 65 72 61 74 6f |initTask|Generato|
|000033e0| 72 3b 67 27 29 3b 7b 24 | 45 4e 44 43 7d 0d 65 6e |r;g');{$|ENDC}.en|
|000033f0| 64 3b 0d 0d 70 72 6f 63 | 65 64 75 72 65 20 74 53 |d;..proc|edure tS|
|00003400| 63 68 65 64 75 6c 65 72 | 2e 44 6f 4e 65 77 54 61 |cheduler|.DoNewTa|
|00003410| 73 6b 28 61 64 64 72 3a | 4d 73 67 41 64 64 72 3b |sk(addr:|MsgAddr;|
|00003420| 54 72 61 6e 73 70 6f 72 | 74 3a 54 72 61 6e 73 70 |Transpor|t:Transp|
|00003430| 6f 72 74 50 74 72 29 3b | 0d 76 61 72 20 74 65 6d |ortPtr);|.var tem|
|00003440| 70 4d 73 67 50 74 72 3a | 4d 73 67 50 74 72 3b 0d |pMsgPtr:|MsgPtr;.|
|00003450| 62 65 67 69 6e 0d 09 74 | 65 6d 70 4d 73 67 50 74 |begin..t|empMsgPt|
|00003460| 72 3a 3d 4d 73 67 50 74 | 72 28 4e 65 77 50 74 72 |r:=MsgPt|r(NewPtr|
|00003470| 43 6c 65 61 72 28 73 69 | 7a 65 6f 66 28 4d 73 67 |Clear(si|zeof(Msg|
|00003480| 52 65 63 29 29 29 3b 09 | 7b 6d 69 73 75 73 65 2e |Rec)));.|{misuse.|
|00003490| 20 77 65 20 6f 6e 6c 79 | 20 77 61 6e 74 20 61 20 | we only| want a |
|000034a0| 63 6c 65 61 6e 20 76 61 | 72 69 61 62 6c 65 7d 0d |clean va|riable}.|
|000034b0| 09 7b 69 73 20 74 68 65 | 72 65 20 61 20 70 72 6f |.{is the|re a pro|
|000034c0| 70 65 72 20 77 61 79 20 | 74 6f 20 63 6c 65 61 72 |per way |to clear|
|000034d0| 20 61 20 76 61 72 69 61 | 62 6c 65 2c 20 77 69 74 | a varia|ble, wit|
|000034e0| 68 6f 75 74 20 62 6f 74 | 68 65 72 69 6e 67 20 74 |hout bot|hering t|
|000034f0| 68 65 20 6d 65 6d 6f 72 | 79 20 6d 61 6e 61 67 65 |he memor|y manage|
|00003500| 72 20 3f 20 0d 09 46 69 | 6c 6c 63 68 61 72 20 63 |r ? ..Fi|llchar c|
|00003510| 6f 75 6c 64 20 62 65 20 | 6d 69 73 75 73 65 64 20 |ould be |misused |
|00003520| 68 65 72 65 2c 20 62 75 | 74 20 74 68 69 73 20 77 |here, bu|t this w|
|00003530| 6f 75 6c 64 20 62 65 20 | 69 6d 70 6c 65 6d 65 6e |ould be |implemen|
|00003540| 74 61 74 69 6f 6e 20 64 | 65 70 65 6e 64 65 6e 74 |tation d|ependent|
|00003550| 20 7d 0d 09 0d 09 69 66 | 20 74 65 6d 70 4d 73 67 | }....if| tempMsg|
|00003560| 50 74 72 3c 3e 6e 69 6c | 20 74 68 65 6e 20 62 65 |Ptr<>nil| then be|
|00003570| 67 69 6e 0d 09 09 77 69 | 74 68 20 74 65 6d 70 4d |gin...wi|th tempM|
|00003580| 73 67 50 74 72 5e 20 64 | 6f 20 62 65 67 69 6e 20 |sgPtr^ d|o begin |
|00003590| 7b 66 69 6c 6c 20 69 6e | 20 74 68 65 20 66 69 65 |{fill in| the fie|
|000035a0| 6c 64 73 20 74 68 65 20 | 73 63 68 65 64 75 6c 65 |lds the |schedule|
|000035b0| 72 20 6b 6e 6f 77 73 20 | 61 62 6f 75 74 7d 0d 09 |r knows |about}..|
|000035c0| 09 4d 73 67 53 6f 75 72 | 63 65 3a 3d 4d 79 41 64 |.MsgSour|ce:=MyAd|
|000035d0| 64 72 28 54 72 61 6e 73 | 70 6f 72 74 29 3b 7b 4d |dr(Trans|port);{M|
|000035e0| 79 53 65 6c 66 3b 7d 0d | 09 09 4d 73 67 44 65 73 |ySelf;}.|..MsgDes|
|000035f0| 74 3a 3d 61 64 64 72 3b | 0d 09 09 4d 73 67 52 65 |t:=addr;|...MsgRe|
|00003600| 70 6c 79 3a 3d 4d 79 41 | 64 64 72 28 54 72 61 6e |ply:=MyA|ddr(Tran|
|00003610| 73 70 6f 72 74 29 3b 7b | 4d 79 53 65 6c 66 3b 7d |sport);{|MySelf;}|
|00003620| 0d 09 09 4d 73 67 54 72 | 70 50 74 72 3a 3d 54 72 |...MsgTr|pPtr:=Tr|
|00003630| 61 6e 73 70 6f 72 74 3b | 0d 09 65 6e 64 3b 0d 09 |ansport;|..end;..|
|00003640| 09 54 61 73 6b 41 64 64 | 72 3a 3d 61 64 64 72 3b |.TaskAdd|r:=addr;|
|00003650| 20 7b 6e 6f 74 65 20 61 | 64 64 72 65 73 73 20 66 | {note a|ddress f|
|00003660| 6f 72 20 63 6f 68 61 6e | 64 6c 65 72 7d 0d 09 09 |or cohan|dler}...|
|00003670| 7b 2a 2a 2a 7d 20 20 20 | 20 20 20 09 09 09 69 66 |{***} | ...if|
|00003680| 20 43 6f 48 61 6e 64 6c | 65 72 3c 3e 6e 69 6c 20 | CoHandl|er<>nil |
|00003690| 74 68 65 6e 20 43 6f 48 | 61 6e 64 6c 65 72 2e 43 |then CoH|andler.C|
|000036a0| 6f 68 61 6e 64 6c 65 28 | 70 53 74 61 72 74 4e 65 |ohandle(|pStartNe|
|000036b0| 77 54 61 73 6b 2c 74 65 | 6d 70 4d 73 67 50 74 72 |wTask,te|mpMsgPtr|
|000036c0| 29 3b 0d 09 09 69 66 20 | 54 61 73 6b 47 65 6e 65 |);...if |TaskGene|
|000036d0| 72 61 74 6f 72 2e 4e 65 | 77 54 61 73 6b 28 74 65 |rator.Ne|wTask(te|
|000036e0| 6d 70 4d 73 67 50 74 72 | 29 20 74 68 65 6e 20 62 |mpMsgPtr|) then b|
|000036f0| 65 67 69 6e 0d 09 09 09 | 50 72 65 76 65 6e 74 49 |egin....|PreventI|
|00003700| 64 6c 65 3b 20 7b 20 61 | 64 64 65 64 20 34 2f 31 |dle; { a|dded 4/1|
|00003710| 35 2f 39 30 20 2d 2d 20 | 4a 6f 61 63 68 69 6d 20 |5/90 -- |Joachim |
|00003720| 7d 0d 09 09 09 7b 2a 2a | 2a 7d 20 20 20 20 20 20 |}....{**|*} |
|00003730| 09 09 09 69 66 20 43 6f | 48 61 6e 64 6c 65 72 3c |...if Co|Handler<|
|00003740| 3e 6e 69 6c 20 74 68 65 | 6e 20 43 6f 48 61 6e 64 |>nil the|n CoHand|
|00003750| 6c 65 72 2e 43 6f 68 61 | 6e 64 6c 65 28 70 4e 65 |ler.Coha|ndle(pNe|
|00003760| 77 54 61 73 6b 44 6f 6e | 65 2c 74 65 6d 70 4d 73 |wTaskDon|e,tempMs|
|00003770| 67 50 74 72 29 3b 0d 09 | 09 09 53 65 6e 64 4d 65 |gPtr);..|..SendMe|
|00003780| 73 73 61 67 65 28 74 65 | 6d 70 4d 73 67 50 74 72 |ssage(te|mpMsgPtr|
|00003790| 29 3b 0d 09 09 4e 65 78 | 74 57 61 69 74 3a 3d 74 |);...Nex|tWait:=t|
|000037a0| 69 63 6b 43 6f 75 6e 74 | 2b 54 61 73 6b 47 65 6e |ickCount|+TaskGen|
|000037b0| 65 72 61 74 6f 72 2e 57 | 61 69 74 49 6e 74 65 72 |erator.W|aitInter|
|000037c0| 76 61 6c 3b 7b 62 6c 6f | 63 6b 20 74 69 6d 65 72 |val;{blo|ck timer|
|000037d0| 7d 0d 09 65 6e 64 0d 09 | 65 6c 73 65 20 62 65 67 |}..end..|else beg|
|000037e0| 69 6e 20 0d 0d 09 09 09 | 7b 2a 2a 2a 7d 20 20 20 |in .....|{***} |
|000037f0| 20 20 20 09 09 09 69 66 | 20 43 6f 48 61 6e 64 6c | ...if| CoHandl|
|00003800| 65 72 3c 3e 6e 69 6c 20 | 74 68 65 6e 20 43 6f 48 |er<>nil |then CoH|
|00003810| 61 6e 64 6c 65 72 2e 43 | 6f 68 61 6e 64 6c 65 28 |andler.C|ohandle(|
|00003820| 70 4e 6f 4e 65 77 54 61 | 73 6b 2c 74 65 6d 70 4d |pNoNewTa|sk,tempM|
|00003830| 73 67 50 74 72 29 3b 0d | 09 09 4e 65 78 74 57 61 |sgPtr);.|..NextWa|
|00003840| 69 74 3a 3d 30 3b 7b 72 | 65 6c 65 61 73 65 20 74 |it:=0;{r|elease t|
|00003850| 69 6d 65 72 7d 0d 09 65 | 6e 64 3b 0d 09 09 44 69 |imer}..e|nd;...Di|
|00003860| 73 70 6f 73 50 74 72 28 | 50 74 72 28 74 65 6d 70 |sposPtr(|Ptr(temp|
|00003870| 4d 73 67 50 74 72 29 29 | 3b 0d 09 65 6e 64 3b 0d |MsgPtr))|;..end;.|
|00003880| 65 6e 64 3b 0d 0d 7b 2d | 2d 2d 2d 2d 2d 2d 2d 2d |end;..{-|--------|
|00003890| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000038a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000038b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000038c0| 2d 2d 2d 2d 2d 2d 7d 0d | 7b 09 2a 2a 2a 2a 2a 2a |------}.|{.******|
|000038d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a a5 a5 a5 a5 a5 |********|***.....|
|000038e0| a5 a5 a5 a5 a5 a5 a5 a5 | a5 a5 a5 a5 2a 2a 2a 2a |........|....****|
|000038f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 09 7d 0d 0d |********|****.}..|
|00003900| 0d 70 72 6f 63 65 64 75 | 72 65 20 74 53 63 68 65 |.procedu|re tSche|
|00003910| 64 75 6c 65 72 2e 48 61 | 6e 64 6c 65 4d 73 67 20 |duler.Ha|ndleMsg |
|00003920| 28 4d 73 67 20 3a 20 4d | 73 67 50 74 72 29 3b 0d |(Msg : M|sgPtr);.|
|00003930| 76 61 72 20 69 20 3a 20 | 69 6e 74 65 67 65 72 3b |var i : |integer;|
|00003940| 20 70 20 3a 20 50 74 72 | 3b 20 0d 09 6c 69 73 74 | p : Ptr|; ..list|
|00003950| 65 6e 53 69 7a 65 3a 6c | 6f 6e 67 69 6e 74 3b 6c |enSize:l|ongint;l|
|00003960| 69 73 74 65 6e 48 61 6e | 64 6c 65 72 3a 74 54 61 |istenHan|dler:tTa|
|00003970| 73 6b 48 61 6e 64 6c 65 | 72 3b 0d 09 6d 79 45 72 |skHandle|r;..myEr|
|00003980| 72 3a 4f 73 45 72 72 3b | 0d 0d 09 66 75 6e 63 74 |r:OsErr;|...funct|
|00003990| 69 6f 6e 20 6b 69 6c 6c | 4d 73 67 3a 6f 73 45 72 |ion kill|Msg:osEr|
|000039a0| 72 3b 0d 76 61 72 20 73 | 3a 73 74 72 32 35 35 3b |r;.var s|:str255;|
|000039b0| 0d 62 65 67 69 6e 0d 0d | 09 77 69 74 68 20 4d 73 |.begin..|.with Ms|
|000039c0| 67 5e 20 64 6f 0d 09 62 | 65 67 69 6e 20 0d 09 09 |g^ do..b|egin ...|
|000039d0| 7b 24 49 46 43 20 64 65 | 62 75 67 67 69 6e 67 7d |{$IFC de|bugging}|
|000039e0| 0d 09 09 69 66 20 28 70 | 74 72 28 4d 73 67 55 73 |...if (p|tr(MsgUs|
|000039f0| 65 72 52 65 66 43 6f 6e | 29 3c 3e 6e 69 6c 29 20 |erRefCon|)<>nil) |
|00003a00| 74 68 65 6e 20 62 65 67 | 69 6e 0d 09 09 09 4d 73 |then beg|in....Ms|
|00003a10| 67 54 6f 53 74 72 69 6e | 67 28 6d 73 67 2c 73 29 |gToStrin|g(msg,s)|
|00003a20| 3b 0d 09 09 09 4c 6f 67 | 53 74 72 69 6e 67 28 63 |;....Log|String(c|
|00003a30| 6f 6e 63 61 74 28 27 6b | 69 6c 6c 6d 73 67 20 27 |oncat('k|illmsg '|
|00003a40| 2c 73 29 29 3b 0d 09 09 | 09 64 65 62 75 67 73 74 |,s));...|.debugst|
|00003a50| 72 28 63 6f 6e 63 61 74 | 28 73 2c 27 3b 67 27 29 |r(concat|(s,';g')|
|00003a60| 29 3b 0d 09 09 65 6e 64 | 3b 0d 09 09 7b 24 45 4e |);...end|;...{$EN|
|00003a70| 44 43 7d 0d 09 09 7b 24 | 49 46 43 20 74 72 75 65 |DC}...{$|IFC true|
|00003a80| 7d 0d 0d 09 09 69 66 20 | 28 70 74 72 28 4d 73 67 |}....if |(ptr(Msg|
|00003a90| 55 73 65 72 52 65 66 43 | 6f 6e 29 3c 3e 6e 69 6c |UserRefC|on)<>nil|
|00003aa0| 29 20 26 20 0d 09 09 7b | 24 49 46 43 20 4d 65 6d |) & ...{|$IFC Mem|
|00003ab0| 62 65 72 4b 6c 75 64 67 | 65 7d 0d 09 09 4d 65 6d |berKludg|e}...Mem|
|00003ac0| 62 65 72 4b 6c 75 64 67 | 65 28 4d 73 67 55 73 65 |berKludg|e(MsgUse|
|00003ad0| 72 52 65 66 43 6f 6e 29 | 20 26 0d 09 09 7b 24 45 |rRefCon)| &...{$E|
|00003ae0| 4e 44 43 7d 0d 09 09 6d | 65 6d 62 65 72 28 74 4f |NDC}...m|ember(tO|
|00003af0| 62 6a 65 63 74 28 4d 73 | 67 55 73 65 72 52 65 66 |bject(Ms|gUserRef|
|00003b00| 43 6f 6e 29 2c 74 4d 65 | 73 73 61 67 65 48 61 6e |Con),tMe|ssageHan|
|00003b10| 64 6c 65 72 29 20 74 68 | 65 6e 20 62 65 67 69 6e |dler) th|en begin|
|00003b20| 0d 0d 09 09 09 6b 69 6c | 6c 4d 73 67 3a 3d 74 4d |.....kil|lMsg:=tM|
|00003b30| 65 73 73 61 67 65 48 61 | 6e 64 6c 65 72 28 4d 73 |essageHa|ndler(Ms|
|00003b40| 67 55 73 65 72 52 65 66 | 43 6f 6e 29 2e 44 69 73 |gUserRef|Con).Dis|
|00003b50| 70 6f 73 4d 73 67 28 6d | 73 67 29 20 3b 0d 09 09 |posMsg(m|sg) ;...|
|00003b60| 09 4d 73 67 55 73 65 72 | 52 65 66 43 6f 6e 3a 3d |.MsgUser|RefCon:=|
|00003b70| 6c 6f 6e 67 69 6e 74 28 | 6e 69 6c 29 3b 0d 09 09 |longint(|nil);...|
|00003b80| 65 6e 64 20 65 6c 73 65 | 0d 09 09 7b 24 45 4e 44 |end else|...{$END|
|00003b90| 43 7d 0d 09 09 6b 69 6c | 6c 4d 73 67 3a 3d 20 44 |C}...kil|lMsg:= D|
|00003ba0| 65 73 74 72 6f 79 4d 73 | 67 20 28 4d 73 67 29 3b |estroyMs|g (Msg);|
|00003bb0| 0d 09 65 6e 64 3b 0d 0d | 65 6e 64 3b 0d 0d 66 75 |..end;..|end;..fu|
|00003bc0| 6e 63 74 69 6f 6e 20 52 | 65 63 65 69 76 65 4d 73 |nction R|eceiveMs|
|00003bd0| 67 3a 4f 73 45 72 72 3b | 0d 76 61 72 20 62 75 66 |g:OsErr;|.var buf|
|00003be0| 66 65 72 20 3a 20 50 74 | 72 3b 0d 09 52 65 63 65 |fer : Pt|r;..Rece|
|00003bf0| 69 76 65 53 69 7a 65 3a | 6c 6f 6e 67 69 6e 74 3b |iveSize:|longint;|
|00003c00| 0d 62 65 67 69 6e 0d 09 | 52 65 63 65 69 76 65 53 |.begin..|ReceiveS|
|00003c10| 69 7a 65 3a 3d 4d 73 67 | 5e 2e 4d 73 67 43 6f 72 |ize:=Msg|^.MsgCor|
|00003c20| 65 53 69 7a 65 3b 0d 09 | 69 66 20 52 65 63 65 69 |eSize;..|if Recei|
|00003c30| 76 65 53 69 7a 65 3d 30 | 20 74 68 65 6e 20 52 65 |veSize=0| then Re|
|00003c40| 63 65 69 76 65 4d 73 67 | 3a 3d 41 63 63 65 70 74 |ceiveMsg|:=Accept|
|00003c50| 4d 73 67 28 4d 73 67 2c | 4e 69 6c 2c 30 29 20 65 |Msg(Msg,|Nil,0) e|
|00003c60| 6c 73 65 20 0d 09 62 65 | 67 69 6e 0d 09 09 77 69 |lse ..be|gin...wi|
|00003c70| 74 68 20 4d 73 67 5e 20 | 64 6f 20 62 65 67 69 6e |th Msg^ |do begin|
|00003c80| 0d 09 09 62 75 66 66 65 | 72 3a 3d 4d 73 67 5e 2e |...buffe|r:=Msg^.|
|00003c90| 4d 73 67 43 6f 72 65 50 | 74 72 3b 09 7b 74 68 65 |MsgCoreP|tr;.{the|
|00003ca0| 20 74 61 73 6b 68 61 6e | 64 6c 65 72 20 73 68 6f | taskhan|dler sho|
|00003cb0| 75 6c 64 20 68 61 76 65 | 20 69 6e 73 74 61 6c 6c |uld have| install|
|00003cc0| 65 64 20 69 74 7d 0d 09 | 09 69 66 20 62 75 66 66 |ed it}..|.if buff|
|00003cd0| 65 72 3d 6e 69 6c 20 74 | 68 65 6e 09 7b 6e 6f 20 |er=nil t|hen.{no |
|00003ce0| 62 75 66 66 65 72 3a 20 | 74 72 79 20 74 6f 20 63 |buffer: |try to c|
|00003cf0| 72 65 61 74 65 20 69 74 | 7d 0d 09 09 62 75 66 66 |reate it|}...buff|
|00003d00| 65 72 3a 3d 74 54 61 73 | 6b 48 61 6e 64 6c 65 72 |er:=tTas|kHandler|
|00003d10| 28 4d 73 67 55 73 65 72 | 52 65 66 43 6f 6e 29 2e |(MsgUser|RefCon).|
|00003d20| 4e 65 77 43 6f 72 65 50 | 74 72 28 52 65 63 65 69 |NewCoreP|tr(Recei|
|00003d30| 76 65 53 69 7a 65 29 3b | 0d 09 09 65 6e 64 3b 0d |veSize);|...end;.|
|00003d40| 0d 09 09 69 66 20 62 75 | 66 66 65 72 20 3d 20 6e |...if bu|ffer = n|
|00003d50| 69 6c 20 74 68 65 6e 20 | 52 65 63 65 69 76 65 4d |il then |ReceiveM|
|00003d60| 73 67 3a 3d 63 4e 69 6c | 45 72 72 6f 72 0d 09 09 |sg:=cNil|Error...|
|00003d70| 65 6c 73 65 20 52 65 63 | 65 69 76 65 4d 73 67 3a |else Rec|eiveMsg:|
|00003d80| 3d 20 41 63 63 65 70 74 | 4d 73 67 20 28 4d 73 67 |= Accept|Msg (Msg|
|00003d90| 2c 20 62 75 66 66 65 72 | 2c 20 52 65 63 65 69 76 |, buffer|, Receiv|
|00003da0| 65 53 69 7a 65 29 3b 0d | 09 65 6e 64 3b 0d 65 6e |eSize);.|.end;.en|
|00003db0| 64 3b 20 7b 52 65 63 65 | 69 76 65 4d 73 67 7d 0d |d; {Rece|iveMsg}.|
|00003dc0| 0d 62 65 67 69 6e 0d 09 | 69 66 20 4d 73 67 3c 3e |.begin..|if Msg<>|
|00003dd0| 6e 69 6c 20 74 68 65 6e | 20 77 69 74 68 20 4d 73 |nil then| with Ms|
|00003de0| 67 5e 20 64 6f 20 0d 09 | 69 66 20 28 4d 73 67 52 |g^ do ..|if (MsgR|
|00003df0| 65 73 75 6c 74 20 3c 20 | 30 29 20 7c ca 28 42 41 |esult < |0) |.(BA|
|00003e00| 6e 64 20 28 4d 73 67 43 | 6d 64 2c 20 74 4d 69 6e |nd (MsgC|md, tMin|
|00003e10| 6f 72 4d 61 73 6b 29 20 | 3e 3d 20 74 54 69 6d 65 |orMask) |>= tTime|
|00003e20| 6f 75 74 29 20 74 68 65 | 6e 20 0d 09 43 68 65 63 |out) the|n ..Chec|
|00003e30| 6b 45 72 72 6f 72 28 27 | 48 61 6e 64 6c 65 20 62 |kError('|Handle b|
|00003e40| 61 64 20 6d 73 67 27 2c | 6b 69 6c 6c 4d 73 67 20 |ad msg',|killMsg |
|00003e50| 29 0d 09 65 6c 73 65 20 | 63 61 73 65 20 42 41 6e |)..else |case BAn|
|00003e60| 64 20 28 4d 73 67 43 6d | 64 2c 20 74 4d 61 6a 6f |d (MsgCm|d, tMajo|
|00003e70| 72 4d 61 73 6b 29 20 6f | 66 0d 09 09 74 4c 69 73 |rMask) o|f...tLis|
|00003e80| 74 65 6e 20 3a 20 62 65 | 67 69 6e 20 0d 09 09 09 |ten : be|gin ....|
|00003e90| 7b 24 49 46 43 20 70 61 | 72 61 6e 6f 69 61 7d 0d |{$IFC pa|ranoia}.|
|00003ea0| 09 09 09 69 66 20 4d 73 | 67 55 73 65 72 52 65 66 |...if Ms|gUserRef|
|00003eb0| 43 6f 6e 3c 3e 6c 6f 6e | 67 69 6e 74 28 6e 69 6c |Con<>lon|gint(nil|
|00003ec0| 29 20 74 68 65 6e 20 50 | 72 6f 67 72 61 6d 42 72 |) then P|rogramBr|
|00003ed0| 65 61 6b 28 27 68 61 6e | 64 6c 65 4d 73 67 3a 20 |eak('han|dleMsg: |
|00003ee0| 67 6f 74 20 4d 73 67 20 | 77 69 74 68 20 72 65 66 |got Msg |with ref|
|00003ef0| 27 29 3b 7b 73 68 6f 75 | 6c 64 20 6e 6f 74 20 68 |');{shou|ld not h|
|00003f00| 61 70 70 65 6e 7d 0d 09 | 09 09 7b 24 45 4e 44 43 |appen}..|..{$ENDC|
|00003f10| 7d 0d 09 09 09 69 66 20 | 6e 6f 74 20 54 61 73 6b |}....if |not Task|
|00003f20| 48 61 6e 64 6c 65 72 2e | 4d 73 67 48 65 61 64 65 |Handler.|MsgHeade|
|00003f30| 72 55 73 61 62 6c 65 28 | 4d 73 67 29 20 74 68 65 |rUsable(|Msg) the|
|00003f40| 6e 20 0d 09 09 09 43 68 | 65 63 6b 45 72 72 6f 72 |n ....Ch|eckError|
|00003f50| 20 28 27 4f 75 74 20 6f | 66 20 63 6f 6e 74 65 78 | ('Out o|f contex|
|00003f60| 74 27 2c 20 6b 69 6c 6c | 4d 73 67 29 0d 09 09 09 |t', kill|Msg)....|
|00003f70| 65 6c 73 65 20 62 65 67 | 69 6e 0d 0d 09 09 09 09 |else beg|in......|
|00003f80| 69 66 20 4d 73 67 55 73 | 65 72 52 65 66 43 6f 6e |if MsgUs|erRefCon|
|00003f90| 3d 6c 6f 6e 67 69 6e 74 | 28 6e 69 6c 29 20 74 68 |=longint|(nil) th|
|00003fa0| 65 6e 20 7b 6e 6f 20 73 | 70 65 63 69 61 6c 20 68 |en {no s|pecial h|
|00003fb0| 61 6e 64 6c 65 72 20 61 | 73 73 69 67 6e 65 64 7d |andler a|ssigned}|
|00003fc0| 0d 09 09 09 09 62 65 67 | 69 6e 0d 09 09 09 09 09 |.....beg|in......|
|00003fd0| 6c 69 73 74 65 6e 48 61 | 6e 64 6c 65 72 3a 3d 74 |listenHa|ndler:=t|
|00003fe0| 61 73 6b 68 61 6e 64 6c | 65 72 3b 20 7b 64 65 66 |askhandl|er; {def|
|00003ff0| 61 75 6c 74 20 74 6f 20 | 73 63 68 65 64 75 6c 65 |ault to |schedule|
|00004000| 72 27 73 20 74 61 73 6b | 20 68 61 6e 64 6c 65 72 |r's task| handler|
|00004010| 7d 0d 09 09 09 09 09 6c | 69 73 74 65 6e 48 61 6e |}......l|istenHan|
|00004020| 64 6c 65 72 2e 73 74 61 | 6d 70 28 6d 73 67 29 3b |dler.sta|mp(msg);|
|00004030| 0d 09 09 09 09 65 6e 64 | 20 0d 09 09 09 09 65 6c |.....end| .....el|
|00004040| 73 65 20 0d 09 09 09 09 | 6c 69 73 74 65 6e 48 61 |se .....|listenHa|
|00004050| 6e 64 6c 65 72 3a 3d 74 | 54 61 73 6b 48 61 6e 64 |ndler:=t|TaskHand|
|00004060| 6c 65 72 28 4d 73 67 55 | 73 65 72 52 65 66 43 6f |ler(MsgU|serRefCo|
|00004070| 6e 29 3b 20 7b 74 61 6b | 65 20 73 70 65 63 69 61 |n); {tak|e specia|
|00004080| 6c 20 68 61 6e 64 6c 65 | 72 7d 0d 09 09 09 09 6c |l handle|r}.....l|
|00004090| 69 73 74 65 6e 53 69 7a | 65 3a 3d 4d 73 67 50 72 |istenSiz|e:=MsgPr|
|000040a0| 69 6f 53 69 7a 65 3b 0d | 09 09 09 09 70 3a 3d 20 |ioSize;.|....p:= |
|000040b0| 4d 73 67 50 72 69 6f 50 | 74 72 3b 0d 09 09 09 09 |MsgPrioP|tr;.....|
|000040c0| 69 66 20 28 70 3d 6e 69 | 6c 29 20 74 68 65 6e 20 |if (p=ni|l) then |
|000040d0| 70 3a 3d 6c 69 73 74 65 | 6e 68 61 6e 64 6c 65 72 |p:=liste|nhandler|
|000040e0| 2e 4e 65 77 50 72 69 6f | 50 74 72 28 6c 69 73 74 |.NewPrio|Ptr(list|
|000040f0| 65 6e 53 69 7a 65 29 3b | 09 7b 66 61 6c 6c 20 62 |enSize);|.{fall b|
|00004100| 61 63 6b 20 73 6f 6c 75 | 74 69 6f 6e 7d 0d 09 09 |ack solu|tion}...|
|00004110| 09 09 69 66 20 28 70 3d | 6e 69 6c 29 20 26 20 28 |..if (p=|nil) & (|
|00004120| 4d 73 67 50 72 69 6f 53 | 69 7a 65 3e 30 29 20 74 |MsgPrioS|ize>0) t|
|00004130| 68 65 6e 20 7b 69 6e 20 | 63 6f 6e 74 65 78 74 2c |hen {in |context,|
|00004140| 20 6e 6f 20 62 75 66 66 | 65 72 2c 62 75 74 20 65 | no buff|er,but e|
|00004150| 78 69 73 74 69 6e 67 20 | 70 72 69 6f 7d 0d 09 09 |xisting |prio}...|
|00004160| 09 09 43 68 65 63 6b 45 | 72 72 6f 72 28 27 45 6d |..CheckE|rror('Em|
|00004170| 70 74 79 20 50 72 69 6f | 20 42 75 66 66 65 72 27 |pty Prio| Buffer'|
|00004180| 2c 63 4e 69 6c 45 72 72 | 6f 72 29 0d 09 09 09 09 |,cNilErr|or).....|
|00004190| 65 6c 73 65 20 62 65 67 | 69 6e 0d 09 09 09 09 09 |else beg|in......|
|000041a0| 43 68 65 63 6b 45 72 72 | 6f 72 28 27 47 65 74 4d |CheckErr|or('GetM|
|000041b0| 73 67 27 2c 47 65 74 4d | 73 67 28 4d 73 67 2c 70 |sg',GetM|sg(Msg,p|
|000041c0| 2c 6c 69 73 74 65 6e 53 | 69 7a 65 29 29 3b 0d 09 |,listenS|ize));..|
|000041d0| 09 09 09 09 54 61 73 6b | 41 64 64 72 3a 3d 6d 73 |....Task|Addr:=ms|
|000041e0| 67 5e 2e 4d 73 67 53 6f | 75 72 63 65 3b 0d 09 09 |g^.MsgSo|urce;...|
|000041f0| 09 09 09 69 66 20 6c 69 | 73 74 65 6e 48 61 6e 64 |...if li|stenHand|
|00004200| 6c 65 72 2e 4d 73 67 55 | 73 61 62 6c 65 28 6d 73 |ler.MsgU|sable(ms|
|00004210| 67 29 20 74 68 65 6e 20 | 62 65 67 69 6e 0d 09 09 |g) then |begin...|
|00004220| 09 09 09 09 6d 79 45 72 | 72 3a 3d 52 65 63 65 69 |....myEr|r:=Recei|
|00004230| 76 65 4d 73 67 3b 0d 09 | 09 09 09 09 09 7b 2a 2a |veMsg;..|.....{**|
|00004240| 2a 7d 20 20 20 20 20 20 | 09 09 09 69 66 20 43 6f |*} |...if Co|
|00004250| 48 61 6e 64 6c 65 72 3c | 3e 6e 69 6c 20 74 68 65 |Handler<|>nil the|
|00004260| 6e 20 43 6f 48 61 6e 64 | 6c 65 72 2e 43 6f 68 61 |n CoHand|ler.Coha|
|00004270| 6e 64 6c 65 28 70 55 73 | 61 62 6c 65 2c 6d 73 67 |ndle(pUs|able,msg|
|00004280| 29 3b 0d 0d 09 09 09 09 | 09 09 69 66 20 6d 79 45 |);......|..if myE|
|00004290| 72 72 3c 3e 6e 6f 45 72 | 72 20 74 68 65 6e 20 0d |rr<>noEr|r then .|
|000042a0| 09 09 09 09 09 09 62 65 | 67 69 6e 0d 09 09 09 09 |......be|gin.....|
|000042b0| 09 09 09 43 68 65 63 6b | 45 72 72 6f 72 20 28 27 |...Check|Error ('|
|000042c0| 52 65 63 65 69 76 65 27 | 2c 6d 79 65 72 72 29 3b |Receive'|,myerr);|
|000042d0| 0d 09 09 09 09 09 09 09 | 43 68 65 63 6b 45 72 72 |........|CheckErr|
|000042e0| 6f 72 20 28 27 44 65 6e | 79 27 2c 20 6b 69 6c 6c |or ('Den|y', kill|
|000042f0| 4d 73 67 29 3b 0d 09 09 | 09 09 09 09 65 6e 64 3b |Msg);...|....end;|
|00004300| 0d 09 09 09 09 09 65 6e | 64 0d 0d 09 09 09 09 09 |......en|d.......|
|00004310| 65 6c 73 65 20 0d 09 09 | 09 09 09 62 65 67 69 6e |else ...|...begin|
|00004320| 20 0d 09 09 09 09 09 69 | 66 20 43 6f 48 61 6e 64 | ......i|f CoHand|
|00004330| 6c 65 72 3c 3e 6e 69 6c | 20 74 68 65 6e 20 43 6f |ler<>nil| then Co|
|00004340| 48 61 6e 64 6c 65 72 2e | 43 6f 68 61 6e 64 6c 65 |Handler.|Cohandle|
|00004350| 28 70 55 6e 55 73 61 62 | 6c 65 2c 6d 73 67 29 3b |(pUnUsab|le,msg);|
|00004360| 0d 09 09 09 09 09 43 68 | 65 63 6b 45 72 72 6f 72 |......Ch|eckError|
|00004370| 20 28 27 44 65 6e 79 27 | 2c 20 6b 69 6c 6c 4d 73 | ('Deny'|, killMs|
|00004380| 67 29 3b 0d 09 09 09 09 | 09 65 6e 64 3b 0d 09 09 |g);.....|.end;...|
|00004390| 09 09 65 6e 64 3b 0d 09 | 09 09 65 6e 64 3b 0d 09 |..end;..|..end;..|
|000043a0| 09 65 6e 64 3b 0d 09 09 | 74 41 63 63 65 70 74 20 |.end;...|tAccept |
|000043b0| 20 3a 20 62 65 67 69 6e | 0d 09 09 09 74 54 61 73 | : begin|....tTas|
|000043c0| 6b 48 61 6e 64 6c 65 72 | 28 4d 73 67 55 73 65 72 |kHandler|(MsgUser|
|000043d0| 52 65 66 43 6f 6e 29 2e | 4d 73 67 45 76 61 6c 75 |RefCon).|MsgEvalu|
|000043e0| 61 74 69 6f 6e 28 4d 73 | 67 29 3b 0d 09 09 09 43 |ation(Ms|g);....C|
|000043f0| 68 65 63 6b 45 72 72 6f | 72 20 28 27 44 69 73 70 |heckErro|r ('Disp|
|00004400| 6f 73 20 61 63 63 65 70 | 74 65 64 27 2c 6b 69 6c |os accep|ted',kil|
|00004410| 6c 4d 73 67 29 3b 0d 09 | 09 65 6e 64 3b 0d 09 09 |lMsg);..|.end;...|
|00004420| 74 50 6f 73 74 20 3a 20 | 43 68 65 63 6b 45 72 72 |tPost : |CheckErr|
|00004430| 6f 72 20 28 27 50 6f 73 | 74 65 64 27 2c 4b 69 6c |or ('Pos|ted',Kil|
|00004440| 6c 4d 73 67 29 3b 0d 09 | 09 6f 74 68 65 72 77 69 |lMsg);..|.otherwi|
|00004450| 73 65 20 50 72 6f 67 72 | 61 6d 42 72 65 61 6b 20 |se Progr|amBreak |
|00004460| 28 27 74 53 63 68 65 64 | 75 6c 65 72 2e 48 61 6e |('tSched|uler.Han|
|00004470| 64 6c 65 4d 73 67 3a 75 | 6e 65 78 70 65 63 74 65 |dleMsg:u|nexpecte|
|00004480| 64 20 6d 73 67 43 6d 64 | 27 29 3b 0d 09 65 6e 64 |d msgCmd|');..end|
|00004490| 3b 0d 65 6e 64 3b 0d 0d | 0d 7b 2d 2d 2d 2d 2d 2d |;.end;..|.{------|
|000044a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000044b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000044c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000044d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 7d 0d 7b 09 09 7d 0d |--------|-}.{..}.|
|000044e0| 0d 70 72 6f 63 65 64 75 | 72 65 20 74 53 63 68 65 |.procedu|re tSche|
|000044f0| 64 75 6c 65 72 2e 50 65 | 72 69 6f 64 69 63 54 61 |duler.Pe|riodicTa|
|00004500| 73 6b 3b 0d 63 6f 6e 73 | 74 20 74 69 6d 65 74 6f |sk;.cons|t timeto|
|00004510| 73 70 65 6e 64 3d 31 30 | 3b 7b 74 69 63 6b 73 20 |spend=10|;{ticks |
|00004520| 61 6c 6c 6f 77 65 64 20 | 66 6f 72 20 72 65 63 65 |allowed |for rece|
|00004530| 69 76 65 7d 0d 76 61 72 | 20 0d 09 74 69 6d 65 6f |ive}.var| ..timeo|
|00004540| 75 74 3a 6c 6f 6e 67 69 | 6e 74 3b 0d 09 64 65 73 |ut:longi|nt;..des|
|00004550| 74 69 6e 61 74 69 6f 6e | 61 64 64 72 3a 4d 73 67 |tination|addr:Msg|
|00004560| 41 64 64 72 3b 0d 09 54 | 61 73 6b 47 65 6e 65 72 |Addr;..T|askGener|
|00004570| 61 74 6f 72 4e 65 65 64 | 73 41 74 74 65 6e 74 69 |atorNeed|sAttenti|
|00004580| 6f 6e 3a 62 6f 6f 6c 65 | 61 6e 3b 0d 62 65 67 69 |on:boole|an;.begi|
|00004590| 6e 0d 0d 09 7b 6d 61 6b | 65 20 73 75 72 65 20 68 |n...{mak|e sure h|
|000045a0| 61 6e 64 6c 65 72 73 20 | 61 72 65 20 69 6e 73 74 |andlers |are inst|
|000045b0| 61 6c 6c 65 64 2e 20 6e | 65 65 64 65 64 20 66 6f |alled. n|eeded fo|
|000045c0| 72 20 48 6f 75 73 65 6b | 65 65 70 69 6e 67 20 3f |r Housek|eeping ?|
|000045d0| 20 65 6c 73 65 20 6c 61 | 74 65 72 7d 0d 09 69 66 | else la|ter}..if|
|000045e0| 20 54 61 73 6b 48 61 6e | 64 6c 65 72 3d 6e 69 6c | TaskHan|dler=nil|
|000045f0| 20 74 68 65 6e 20 72 65 | 63 65 69 76 69 6e 67 3a | then re|ceiving:|
|00004600| 3d 66 61 6c 73 65 3b 0d | 09 69 66 20 54 61 73 6b |=false;.|.if Task|
|00004610| 47 65 6e 65 72 61 74 6f | 72 3d 6e 69 6c 20 74 68 |Generato|r=nil th|
|00004620| 65 6e 20 73 65 6e 64 69 | 6e 67 3a 3d 66 61 6c 73 |en sendi|ng:=fals|
|00004630| 65 3b 0d 0d 09 69 66 20 | 73 65 6e 64 69 6e 67 20 |e;...if |sending |
|00004640| 20 74 68 65 6e 20 0d 09 | 62 65 67 69 6e 20 0d 09 | then ..|begin ..|
|00004650| 09 54 61 73 6b 47 65 6e | 65 72 61 74 6f 72 4e 65 |.TaskGen|eratorNe|
|00004660| 65 64 73 41 74 74 65 6e | 74 69 6f 6e 3a 3d 66 61 |edsAtten|tion:=fa|
|00004670| 6c 73 65 3b 0d 09 09 64 | 65 73 74 69 6e 61 74 69 |lse;...d|estinati|
|00004680| 6f 6e 61 64 64 72 3a 3d | 50 72 65 76 44 65 73 74 |onaddr:=|PrevDest|
|00004690| 3b 0d 09 09 69 66 20 28 | 74 69 63 6b 43 6f 75 6e |;...if (|tickCoun|
|000046a0| 74 3e 4e 65 78 74 54 69 | 63 6b 6c 65 29 20 20 74 |t>NextTi|ckle) t|
|000046b0| 68 65 6e 20 62 65 67 69 | 6e 0d 09 09 09 7b 24 49 |hen begi|n....{$I|
|000046c0| 46 43 20 64 65 62 75 67 | 67 69 6e 67 7d 20 69 66 |FC debug|ging} if|
|000046d0| 20 73 70 61 72 65 20 74 | 68 65 6e 20 64 65 62 75 | spare t|hen debu|
|000046e0| 67 73 74 72 28 27 54 61 | 73 6b 47 65 6e 65 72 61 |gstr('Ta|skGenera|
|000046f0| 74 6f 72 4e 65 65 64 73 | 41 74 74 65 6e 74 69 6f |torNeeds|Attentio|
|00004700| 6e 3b 67 27 29 3b 7b 24 | 45 4e 44 43 7d 0d 09 09 |n;g');{$|ENDC}...|
|00004710| 09 4e 65 78 74 54 69 63 | 6b 6c 65 3a 3d 74 69 63 |.NextTic|kle:=tic|
|00004720| 6b 43 6f 75 6e 74 2b 54 | 61 73 6b 47 65 6e 65 72 |kCount+T|askGener|
|00004730| 61 74 6f 72 2e 54 69 63 | 6b 6c 65 49 6e 74 65 72 |ator.Tic|kleInter|
|00004740| 76 61 6c 3b 0d 09 09 09 | 7b 4e 65 78 74 57 61 69 |val;....|{NextWai|
|00004750| 74 20 69 73 20 68 61 6e | 64 6c 65 64 20 62 79 20 |t is han|dled by |
|00004760| 44 6f 4e 65 77 54 61 73 | 6b 7d 0d 09 09 09 64 65 |DoNewTas|k}....de|
|00004770| 73 74 69 6e 61 74 69 6f | 6e 61 64 64 72 2e 61 3a |stinatio|naddr.a:|
|00004780| 3d 4e 4c 52 61 6e 64 6f | 6d 3b 0d 09 09 09 54 61 |=NLRando|m;....Ta|
|00004790| 73 6b 47 65 6e 65 72 61 | 74 6f 72 4e 65 65 64 73 |skGenera|torNeeds|
|000047a0| 41 74 74 65 6e 74 69 6f | 6e 3a 3d 74 72 75 65 3b |Attentio|n:=true;|
|000047b0| 0d 09 09 65 6e 64 20 65 | 6c 73 65 20 69 66 20 28 |...end e|lse if (|
|000047c0| 74 69 63 6b 43 6f 75 6e | 74 3e 4e 65 78 74 57 61 |tickCoun|t>NextWa|
|000047d0| 69 74 29 20 74 68 65 6e | 20 62 65 67 69 6e 20 0d |it) then| begin .|
|000047e0| 09 09 09 64 65 73 74 69 | 6e 61 74 69 6f 6e 61 64 |...desti|nationad|
|000047f0| 64 72 2e 61 3a 3d 4e 4c | 4e 65 78 74 28 64 65 73 |dr.a:=NL|Next(des|
|00004800| 74 69 6e 61 74 69 6f 6e | 61 64 64 72 2e 61 29 3b |tination|addr.a);|
|00004810| 0d 09 09 09 54 61 73 6b | 47 65 6e 65 72 61 74 6f |....Task|Generato|
|00004820| 72 4e 65 65 64 73 41 74 | 74 65 6e 74 69 6f 6e 3a |rNeedsAt|tention:|
|00004830| 3d 74 72 75 65 3b 0d 09 | 09 65 6e 64 3b 0d 09 09 |=true;..|.end;...|
|00004840| 69 66 20 54 61 73 6b 47 | 65 6e 65 72 61 74 6f 72 |if TaskG|enerator|
|00004850| 4e 65 65 64 73 41 74 74 | 65 6e 74 69 6f 6e 20 74 |NeedsAtt|ention t|
|00004860| 68 65 6e 20 62 65 67 69 | 6e 0d 09 09 09 44 6f 4e |hen begi|n....DoN|
|00004870| 65 77 54 61 73 6b 28 64 | 65 73 74 69 6e 61 74 69 |ewTask(d|estinati|
|00004880| 6f 6e 61 64 64 72 2c 4d | 79 54 72 61 6e 73 70 6f |onaddr,M|yTranspo|
|00004890| 72 74 29 3b 0d 09 09 65 | 6e 64 3b 0d 09 65 6e 64 |rt);...e|nd;..end|
|000048a0| 3b 7b 54 61 73 6b 47 65 | 6e 65 72 61 74 6f 72 4e |;{TaskGe|neratorN|
|000048b0| 65 65 64 73 41 74 74 65 | 6e 74 69 6f 6e 7d 0d 65 |eedsAtte|ntion}.e|
|000048c0| 6e 64 3b 0d 0d 66 75 6e | 63 74 69 6f 6e 20 74 53 |nd;..fun|ction tS|
|000048d0| 63 68 65 64 75 6c 65 72 | 2e 47 65 74 53 6c 65 65 |cheduler|.GetSlee|
|000048e0| 70 3a 6c 6f 6e 67 69 6e | 74 3b 0d 76 61 72 20 74 |p:longin|t;.var t|
|000048f0| 65 6d 70 53 6c 65 65 70 | 2c 6e 6f 77 2c 6e 65 78 |empSleep|,now,nex|
|00004900| 74 74 69 6d 65 3a 6c 6f | 6e 67 69 6e 74 3b 0d 62 |ttime:lo|ngint;.b|
|00004910| 65 67 69 6e 0d 09 74 65 | 6d 70 53 6c 65 65 70 20 |egin..te|mpSleep |
|00004920| 3a 3d 20 6d 61 78 6c 6f | 6e 67 69 6e 74 3b 20 7b |:= maxlo|ngint; {|
|00004930| ca 64 65 66 61 75 6c 74 | 3a 20 6e 6f 20 74 69 6d |.default|: no tim|
|00004940| 65 20 72 65 71 75 69 72 | 65 64 20 61 74 20 61 6c |e requir|ed at al|
|00004950| 6c 20 7d 0d 09 6e 6f 77 | 3a 3d 74 69 63 6b 63 6f |l }..now|:=tickco|
|00004960| 75 6e 74 3b 0d 09 69 66 | 20 73 65 6e 64 69 6e 67 |unt;..if| sending|
|00004970| 20 74 68 65 6e 20 62 65 | 67 69 6e 20 6e 65 78 74 | then be|gin next|
|00004980| 74 69 6d 65 3a 3d 4e 65 | 78 74 57 61 69 74 3b 69 |time:=Ne|xtWait;i|
|00004990| 66 20 6e 65 78 74 54 69 | 63 6b 6c 65 3c 6e 65 78 |f nextTi|ckle<nex|
|000049a0| 74 74 69 6d 65 20 74 68 | 65 6e 20 6e 65 78 74 74 |ttime th|en nextt|
|000049b0| 69 6d 65 3a 3d 6e 65 78 | 74 74 69 63 6b 6c 65 3b |ime:=nex|ttickle;|
|000049c0| 20 65 6e 64 3b 0d 09 74 | 65 6d 70 53 6c 65 65 70 | end;..t|empSleep|
|000049d0| 3a 3d 6e 65 78 74 74 69 | 6d 65 2d 6e 6f 77 3b 09 |:=nextti|me-now;.|
|000049e0| 0d 09 69 66 20 74 65 6d | 70 53 6c 65 65 70 20 3c |..if tem|pSleep <|
|000049f0| 20 30 20 74 68 65 6e 20 | 74 65 6d 70 53 6c 65 65 | 0 then |tempSlee|
|00004a00| 70 20 3a 3d 20 30 3b 0d | 09 47 65 74 53 6c 65 65 |p := 0;.|.GetSlee|
|00004a10| 70 3a 3d 74 65 6d 70 73 | 6c 65 65 70 3b 0d 65 6e |p:=temps|leep;.en|
|00004a20| 64 3b 0d 0d 0d 70 72 6f | 63 65 64 75 72 65 20 74 |d;...pro|cedure t|
|00004a30| 73 63 68 65 64 75 6c 65 | 72 2e 6b 69 63 6b 4f 66 |schedule|r.kickOf|
|00004a40| 66 28 6d 61 78 63 6f 75 | 6e 74 2c 6d 61 78 74 69 |f(maxcou|nt,maxti|
|00004a50| 63 6b 73 3a 69 6e 74 65 | 67 65 72 29 3b 0d 76 61 |cks:inte|ger);.va|
|00004a60| 72 20 0d 09 7b 24 49 46 | 43 20 64 65 62 75 67 67 |r ..{$IF|C debugg|
|00004a70| 69 6e 67 7d 0d 0d 09 73 | 2c 73 31 3a 73 74 72 32 |ing}...s|,s1:str2|
|00004a80| 35 35 3b 0d 09 6f 6c 64 | 6d 61 78 63 6f 75 6e 74 |55;..old|maxcount|
|00004a90| 2c 6f 6c 64 74 69 63 6b | 73 3a 6c 6f 6e 67 69 6e |,oldtick|s:longin|
|00004aa0| 74 3b 0d 09 7b 24 45 4e | 44 43 7d 0d 09 74 69 6d |t;..{$EN|DC}..tim|
|00004ab0| 65 6c 69 6d 69 74 3a 6c | 6f 6e 67 69 6e 74 3b 0d |elimit:l|ongint;.|
|00004ac0| 62 65 67 69 6e 0d 09 7b | 24 49 46 43 20 64 65 62 |begin..{|$IFC deb|
|00004ad0| 75 67 67 69 6e 67 7d 0d | 09 6f 6c 64 6d 61 78 63 |ugging}.|.oldmaxc|
|00004ae0| 6f 75 6e 74 3a 3d 6d 61 | 78 63 6f 75 6e 74 3b 0d |ount:=ma|xcount;.|
|00004af0| 09 6f 6c 64 74 69 63 6b | 73 3a 3d 6d 61 78 74 69 |.oldtick|s:=maxti|
|00004b00| 63 6b 73 3b 0d 09 7b 24 | 45 4e 44 43 7d 0d 0d 09 |cks;..{$|ENDC}...|
|00004b10| 74 69 6d 65 6c 69 6d 69 | 74 3a 3d 74 69 63 6b 63 |timelimi|t:=tickc|
|00004b20| 6f 75 6e 74 2b 6d 61 78 | 74 69 63 6b 73 3b 0d 09 |ount+max|ticks;..|
|00004b30| 69 66 20 6d 61 78 63 6f | 75 6e 74 3d 30 20 74 68 |if maxco|unt=0 th|
|00004b40| 65 6e 20 6d 61 78 63 6f | 75 6e 74 3a 3d 4e 4c 43 |en maxco|unt:=NLC|
|00004b50| 6f 75 6e 74 3b 7b 20 77 | 65 20 77 69 6c 6c 20 64 |ount;{ w|e will d|
|00004b60| 6f 20 61 74 20 6c 65 61 | 73 74 20 6f 6e 65 7d 0d |o at lea|st one}.|
|00004b70| 09 72 65 70 65 61 74 20 | 0d 09 09 6e 65 78 74 54 |.repeat |...nextT|
|00004b80| 69 63 6b 6c 65 3a 3d 30 | 3b 09 0d 09 09 6e 65 78 |ickle:=0|;....nex|
|00004b90| 74 57 61 69 74 3a 3d 30 | 3b 0d 09 09 50 65 72 69 |tWait:=0|;...Peri|
|00004ba0| 6f 64 69 63 54 61 73 6b | 3b 0d 09 09 6d 61 78 63 |odicTask|;...maxc|
|00004bb0| 6f 75 6e 74 3a 3d 6d 61 | 78 63 6f 75 6e 74 2d 31 |ount:=ma|xcount-1|
|00004bc0| 3b 0d 09 75 6e 74 69 6c | 09 20 28 6e 6f 74 20 28 |;..until|. (not (|
|00004bd0| 73 65 6e 64 69 6e 67 20 | 7c 20 72 65 63 65 69 76 |sending || receiv|
|00004be0| 69 6e 67 29 29 7c 28 74 | 69 63 6b 63 6f 75 6e 74 |ing))|(t|ickcount|
|00004bf0| 3e 74 69 6d 65 6c 69 6d | 69 74 29 7c 28 6d 61 78 |>timelim|it)|(max|
|00004c00| 63 6f 75 6e 74 3c 3d 30 | 29 3b 0d 09 7b 24 49 46 |count<=0|);..{$IF|
|00004c10| 43 20 64 65 62 75 67 67 | 69 6e 67 7d 20 09 6f 6c |C debugg|ing} .ol|
|00004c20| 64 54 69 63 6b 73 3a 3d | 74 69 63 6b 43 6f 75 6e |dTicks:=|tickCoun|
|00004c30| 74 2d 6f 6c 64 74 69 63 | 6b 73 3b 09 09 7b 74 69 |t-oldtic|ks;..{ti|
|00004c40| 6d 65 20 64 6f 6e 65 20 | 7d 0d 09 6f 6c 64 6d 61 |me done |}..oldma|
|00004c50| 78 63 6f 75 6e 74 3a 3d | 6f 6c 64 6d 61 78 63 6f |xcount:=|oldmaxco|
|00004c60| 75 6e 74 2d 6d 61 78 63 | 6f 75 6e 74 3b 09 7b 63 |unt-maxc|ount;.{c|
|00004c70| 6f 75 6e 74 73 20 64 6f | 6e 65 7d 0d 09 69 66 20 |ounts do|ne}..if |
|00004c80| 73 70 61 72 65 20 74 68 | 65 6e 20 50 72 6f 67 72 |spare th|en Progr|
|00004c90| 61 6d 42 72 65 61 6b 28 | 27 74 73 63 68 65 64 75 |amBreak(|'tschedu|
|00004ca0| 6c 65 72 2e 6b 69 63 6b | 4f 66 66 20 74 69 63 6b |ler.kick|Off tick|
|00004cb0| 6c 65 20 64 6f 6e 65 2e | 3b 64 6d 20 61 36 20 27 |le done.|;dm a6 '|
|00004cc0| 29 3b 20 7b 24 45 4e 44 | 43 7d 0d 0d 65 6e 64 3b |); {$END|C}..end;|
|00004cd0| 0d 0d 70 72 6f 63 65 64 | 75 72 65 20 74 53 63 68 |..proced|ure tSch|
|00004ce0| 65 64 75 6c 65 72 2e 68 | 61 6e 64 6c 65 45 72 72 |eduler.h|andleErr|
|00004cf0| 6f 72 28 66 72 6f 6d 3a | 74 53 63 68 65 64 75 6c |or(from:|tSchedul|
|00004d00| 65 72 50 68 61 73 65 3b | 77 68 69 63 68 3a 4f 73 |erPhase;|which:Os|
|00004d10| 45 72 72 29 3b 0d 6c 61 | 62 65 6c 20 31 2c 39 3b |Err);.la|bel 1,9;|
|00004d20| 0d 63 6f 6e 73 74 0d 09 | 5f 55 6e 69 6d 70 6c 65 |.const..|_Unimple|
|00004d30| 6d 65 6e 74 65 64 09 09 | 09 09 09 20 3d 20 24 41 |mented..|... = $A|
|00004d40| 38 39 46 3b 0d 09 5f 44 | 65 62 75 67 67 65 72 09 |89F;.._D|ebugger.|
|00004d50| 09 09 09 09 09 20 3d 20 | 24 41 39 46 46 3b 0d 09 |..... = |$A9FF;..|
|00004d60| 5f 44 65 62 75 67 53 74 | 72 09 09 09 09 09 09 20 |_DebugSt|r...... |
|00004d70| 3d 20 24 41 42 46 46 3b | 0d 0d 76 61 72 20 73 3a |= $ABFF;|..var s:|
|00004d80| 73 74 72 32 35 35 3b 73 | 31 2c 73 32 3a 73 74 72 |str255;s|1,s2:str|
|00004d90| 31 35 3b 0d 62 65 67 69 | 6e 0d 09 7b 66 69 6c 74 |15;.begi|n..{filt|
|00004da0| 65 72 20 62 6f 67 75 73 | 20 65 72 72 6f 72 73 7d |er bogus| errors}|
|00004db0| 0d 09 69 66 20 77 68 69 | 63 68 20 3c 3e 20 6e 6f |..if whi|ch <> no|
|00004dc0| 65 72 72 20 74 68 65 6e | 20 0d 09 63 61 73 65 20 |err then| ..case |
|00004dd0| 66 72 6f 6d 20 6f 66 20 | 0d 09 09 70 53 65 6e 64 |from of |...pSend|
|00004de0| 4d 65 73 73 61 67 65 3a | 20 63 61 73 65 20 77 68 |Message:| case wh|
|00004df0| 69 63 68 20 6f 66 0d 09 | 09 09 65 51 75 65 45 6d |ich of..|..eQueEm|
|00004e00| 70 74 79 2c 7b 6d 61 79 | 20 6c 61 73 74 20 75 6e |pty,{may| last un|
|00004e10| 74 69 6c 20 74 69 6d 65 | 6f 75 74 20 2d 2d 20 6e |til time|out -- n|
|00004e20| 6f 74 65 20 77 68 69 6c | 65 20 73 74 61 67 65 20 |ote whil|e stage |
|00004e30| 61 6c 70 68 61 2e 20 6e | 65 65 64 73 0d 09 09 09 |alpha. n|eeds....|
|00004e40| 6c 65 73 73 20 74 61 73 | 6b 73 20 6f 72 20 6d 6f |less tas|ks or mo|
|00004e50| 72 65 20 6d 65 73 73 61 | 67 65 20 62 75 66 66 65 |re messa|ge buffe|
|00004e60| 72 73 7d 0d 09 09 09 65 | 50 72 69 6f 32 42 69 67 |rs}....e|Prio2Big|
|00004e70| 2c 0d 09 09 09 65 53 69 | 7a 65 4c 69 6d 69 74 2c |,....eSi|zeLimit,|
|00004e80| 0d 09 09 09 65 50 72 6f | 74 54 79 70 65 2c 0d 09 |....ePro|tType,..|
|00004e90| 09 09 65 54 72 61 6e 73 | 70 6f 72 74 44 6f 77 6e |..eTrans|portDown|
|00004ea0| 2c 0d 09 09 09 65 43 6d | 64 53 65 71 75 65 6e 63 |,....eCm|dSequenc|
|00004eb0| 65 3a 3b 0d 09 09 09 6f | 74 68 65 72 77 69 73 65 |e:;....o|therwise|
|00004ec0| 20 77 68 69 63 68 3a 3d | 6e 6f 45 72 72 0d 09 09 | which:=|noErr...|
|00004ed0| 65 6e 64 3b 0d 09 09 70 | 48 6f 75 73 65 6b 65 65 |end;...p|Housekee|
|00004ee0| 70 69 6e 67 44 65 73 74 | 72 6f 79 2c 70 46 72 65 |pingDest|roy,pFre|
|00004ef0| 65 2c 70 41 63 63 65 70 | 74 4d 73 67 3a 20 77 68 |e,pAccep|tMsg: wh|
|00004f00| 69 63 68 3a 3d 6e 6f 45 | 72 72 3b 0d 09 09 70 69 |ich:=noE|rr;...pi|
|00004f10| 6e 69 74 3a 3b 7b 6e 6f | 74 65 20 61 6c 6c 20 65 |nit:;{no|te all e|
|00004f20| 72 72 6f 72 73 7d 0d 0d | 09 09 6f 74 68 65 72 77 |rrors}..|..otherw|
|00004f30| 69 73 65 0d 09 65 6e 64 | 3b 09 0d 0d 0d 09 31 3a |ise..end|;.....1:|
|00004f40| 09 69 66 20 20 28 77 68 | 69 63 68 3c 3e 6e 6f 45 |.if (wh|ich<>noE|
|00004f50| 72 72 29 20 0d 09 26 20 | 28 77 68 69 63 68 3c 3e |rr) ..& |(which<>|
|00004f60| 65 49 6e 76 61 6c 69 64 | 29 20 7b 20 66 6f 72 20 |eInvalid|) { for |
|00004f70| 6e 6f 77 2e 20 6e 65 74 | 77 6f 72 6b 20 65 72 72 |now. net|work err|
|00004f80| 6f 72 20 68 61 6e 64 6c | 69 6e 67 20 73 74 69 6c |or handl|ing stil|
|00004f90| 6c 20 74 6f 20 62 65 20 | 66 69 78 65 64 20 a5 a5 |l to be |fixed ..|
|00004fa0| a5 7d 0d 09 74 68 65 6e | 20 62 65 67 69 6e 0d 0d |.}..then| begin..|
|00004fb0| 09 09 69 66 20 28 6e 6f | 74 20 45 72 72 51 75 69 |..if (no|t ErrQui|
|00004fc0| 65 74 29 20 26 20 7b 73 | 6f 6d 65 20 64 65 62 75 |et) & {s|ome debu|
|00004fd0| 67 67 65 72 20 69 6e 73 | 74 61 6c 6c 65 64 7d 0d |gger ins|talled}.|
|00004fe0| 09 09 28 4e 47 65 74 54 | 72 61 70 41 64 64 72 65 |..(NGetT|rapAddre|
|00004ff0| 73 73 20 28 5f 44 65 62 | 75 67 53 74 72 2c 20 54 |ss (_Deb|ugStr, T|
|00005000| 6f 6f 6c 54 72 61 70 29 | 20 3c 3e 20 4e 47 65 74 |oolTrap)| <> NGet|
|00005010| 54 72 61 70 41 64 64 72 | 65 73 73 20 28 5f 55 6e |TrapAddr|ess (_Un|
|00005020| 69 6d 70 6c 65 6d 65 6e | 74 65 64 2c 20 54 6f 6f |implemen|ted, Too|
|00005030| 6c 54 72 61 70 29 29 0d | 09 09 74 68 65 6e 20 7b |lTrap)).|..then {|
|00005040| 72 65 70 6f 72 74 20 74 | 68 65 20 65 72 72 6f 72 |report t|he error|
|00005050| 2c 20 75 73 69 6e 67 20 | 74 68 65 20 64 65 62 75 |, using |the debu|
|00005060| 67 67 65 72 7d 20 62 65 | 67 69 6e 0d 09 09 09 6e |gger} be|gin....n|
|00005070| 75 6d 74 6f 73 74 72 69 | 6e 67 28 77 68 69 63 68 |umtostri|ng(which|
|00005080| 2c 73 31 29 3b 0d 09 09 | 09 6e 75 6d 74 6f 73 74 |,s1);...|.numtost|
|00005090| 72 69 6e 67 28 6f 72 64 | 28 66 72 6f 6d 29 2c 73 |ring(ord|(from),s|
|000050a0| 32 29 3b 0d 09 09 09 73 | 3a 3d 63 6f 6e 63 61 74 |2);....s|:=concat|
|000050b0| 28 27 74 53 63 68 65 64 | 75 6c 65 72 20 64 65 74 |('tSched|uler det|
|000050c0| 65 63 74 65 64 20 65 72 | 72 6f 72 20 27 2c 73 31 |ected er|ror ',s1|
|000050d0| 2c 27 20 66 72 6f 6d 20 | 27 2c 73 32 2c 27 3b 73 |,' from |',s2,';s|
|000050e0| 63 27 29 3b 0d 09 09 09 | 64 65 62 75 67 73 74 72 |c');....|debugstr|
|000050f0| 28 73 29 3b 09 7b 64 65 | 62 75 67 67 65 72 20 65 |(s);.{de|bugger e|
|00005100| 73 69 73 74 73 7d 0d 09 | 09 09 69 66 20 73 70 61 |sists}..|..if spa|
|00005110| 72 65 20 74 68 65 6e 20 | 62 65 67 69 6e 20 64 65 |re then |begin de|
|00005120| 62 75 67 73 74 72 28 27 | 74 53 63 68 65 64 75 6c |bugstr('|tSchedul|
|00005130| 65 72 2e 68 61 6e 64 6c | 65 45 72 72 6f 72 20 67 |er.handl|eError g|
|00005140| 6f 69 6e 67 20 74 6f 20 | 63 6c 65 61 72 20 65 72 |oing to |clear er|
|00005150| 72 6f 72 20 63 6f 64 65 | 2e 27 29 3b 65 6e 64 3b |ror code|.');end;|
|00005160| 7b 73 70 61 72 65 20 68 | 61 6e 64 6c 65 65 72 72 |{spare h|andleerr|
|00005170| 6f 72 7d 0d 0d 09 09 65 | 6e 64 3b 0d 09 09 45 72 |or}....e|nd;...Er|
|00005180| 72 3a 3d 77 68 69 63 68 | 3b 0d 0d 09 09 69 66 20 |r:=which|;....if |
|00005190| 73 70 61 72 65 20 74 68 | 65 6e 20 62 65 67 69 6e |spare th|en begin|
|000051a0| 20 65 72 72 3a 3d 4e 6f | 45 72 72 3b 65 6e 64 3b | err:=No|Err;end;|
|000051b0| 7b 73 70 61 72 65 20 68 | 61 6e 64 6c 65 65 72 72 |{spare h|andleerr|
|000051c0| 6f 72 7d 0d 0d 09 09 45 | 72 72 46 72 6f 6d 3a 3d |or}....E|rrFrom:=|
|000051d0| 66 72 6f 6d 3b 0d 09 65 | 6e 64 3b 20 7b 45 72 72 |from;..e|nd; {Err|
|000051e0| 7d 0d 09 39 3a 0d 65 6e | 64 3b 0d 0d 0d 0d 7b 3d |}..9:.en|d;....{=|
|000051f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00005200| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00005210| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00005220| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00005230| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 7d 0d 09 7b |========|====}..{|
|00005240| 09 63 6f 68 61 6e 64 6c | 65 72 20 69 6d 70 6c 65 |.cohandl|er imple|
|00005250| 6d 65 6e 74 61 74 69 6f | 6e 09 0d 09 54 68 65 72 |mentatio|n...Ther|
|00005260| 65 20 69 73 20 6e 6f 20 | 72 65 61 6c 20 64 65 66 |e is no |real def|
|00005270| 61 75 6c 74 20 69 6d 70 | 6c 65 6d 65 6e 74 61 74 |ault imp|lementat|
|00005280| 69 6f 6e 20 66 6f 72 20 | 63 6f 68 61 6e 64 6c 65 |ion for |cohandle|
|00005290| 72 73 2e 20 54 68 69 73 | 20 69 73 20 6a 75 73 74 |rs. This| is just|
|000052a0| 20 61 20 0d 09 70 72 6f | 74 6f 74 79 70 65 20 74 | a ..pro|totype t|
|000052b0| 6f 20 64 65 66 69 6e 65 | 20 74 68 65 20 63 61 6c |o define| the cal|
|000052c0| 6c 69 6e 67 20 63 6f 6e | 76 65 6e 74 69 6f 6e 73 |ling con|ventions|
|000052d0| 2e 7d 0d 0d 70 72 6f 63 | 65 64 75 72 65 20 74 53 |.}..proc|edure tS|
|000052e0| 63 68 65 64 75 6c 65 72 | 43 6f 68 61 6e 64 6c 65 |cheduler|Cohandle|
|000052f0| 72 2e 43 6f 48 61 6e 64 | 6c 65 28 63 6d 64 3a 74 |r.CoHand|le(cmd:t|
|00005300| 53 63 68 65 64 75 6c 65 | 72 50 68 61 73 65 3b 6d |Schedule|rPhase;m|
|00005310| 73 67 3a 4d 73 67 50 74 | 72 29 3b 0d 62 65 67 69 |sg:MsgPt|r);.begi|
|00005320| 6e 0d 09 63 61 73 65 20 | 63 6d 64 20 6f 66 0d 09 |n..case |cmd of..|
|00005330| 09 70 55 6e 64 65 66 69 | 6e 65 64 3a 3b 0d 09 09 |.pUndefi|ned:;...|
|00005340| 70 55 73 61 62 6c 65 3a | 3b 0d 09 09 70 55 6e 55 |pUsable:|;...pUnU|
|00005350| 73 61 62 6c 65 3a 3b 0d | 09 09 70 53 74 61 72 74 |sable:;.|..pStart|
|00005360| 4e 65 77 54 61 73 6b 3a | 3b 0d 09 09 70 4e 65 77 |NewTask:|;...pNew|
|00005370| 54 61 73 6b 44 6f 6e 65 | 3a 3b 0d 09 09 70 4e 6f |TaskDone|:;...pNo|
|00005380| 4e 65 77 54 61 73 6b 3a | 3b 0d 09 09 6f 74 68 65 |NewTask:|;...othe|
|00005390| 72 77 69 73 65 0d 09 65 | 6e 64 3b 0d 65 6e 64 3b |rwise..e|nd;.end;|
|000053a0| 0d 0d 70 72 6f 63 65 64 | 75 72 65 20 74 53 63 68 |..proced|ure tSch|
|000053b0| 65 64 75 6c 65 72 43 6f | 68 61 6e 64 6c 65 72 2e |edulerCo|handler.|
|000053c0| 52 65 73 65 74 3b 0d 62 | 65 67 69 6e 0d 65 6e 64 |Reset;.b|egin.end|
|000053d0| 3b 0d 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |;.......|........|
|000053e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000053f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005400| 00 00 01 00 00 00 06 8d | 00 00 05 8d 00 00 00 5e |........|.......^|
|00005410| 6e 63 7d 0d 7b 20 a9 20 | 47 2e 20 53 61 77 69 74 |nc}.{ . |G. Sawit|
|00005420| 7a 6b 69 2c 20 53 74 61 | 74 4c 61 62 20 48 65 69 |zki, Sta|tLab Hei|
|00005430| 13 53 63 68 65 64 75 6c | 65 72 55 6e 69 74 2e 69 |.Schedul|erUnit.i|
|00005440| 6e 63 2e 70 02 00 00 00 | 54 45 58 54 4d 50 53 20 |nc.p....|TEXTMPS |
|00005450| 00 00 54 45 58 54 4d 50 | 53 20 01 00 02 3f 00 01 |..TEXTMP|S ...?..|
|00005460| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005470| 00 00 a1 7d 0c fe 00 00 | 53 52 00 00 06 eb 6e 64 |...}....|SR....nd|
|00005480| 6c 65 72 73 2e 20 73 65 | 6e 64 69 6e 67 20 70 61 |lers. se|nding pa|
|00005490| 72 74 7d 0d 0d 70 72 6f | 63 65 64 75 72 65 20 74 |rt}..pro|cedure t|
|000054a0| 54 61 73 6b 47 65 6e 65 | 72 61 74 6f 72 2e 69 6e |TaskGene|rator.in|
|000054b0| 69 74 28 50 72 69 6f 42 | 75 66 3a 50 74 72 3b 4d |it(PrioB|uf:Ptr;M|
|000054c0| 61 78 50 72 69 6f 53 69 | 7a 65 3a 53 69 7a 65 3b |axPrioSi|ze:Size;|
|000054d0| 44 61 74 61 42 75 66 3a | 50 74 72 3b 4d 61 78 44 |DataBuf:|Ptr;MaxD|
|000054e0| 61 74 61 53 69 7a 65 3a | 53 69 7a 65 29 3b 0d 63 |ataSize:|Size);.c|
|000054f0| 6f 6e 73 74 09 0d 09 63 | 54 69 63 6b 6c 65 49 6e |onst...c|TickleIn|
|00005500| 00 00 00 48 00 09 4d 6f | 6e 61 63 6f 00 e0 49 6e |...H..Mo|naco..In|
|00005510| 00 00 00 14 00 31 71 00 | 00 0a 00 03 00 09 00 0e |.....1q.|........|
|00005520| 00 0a 72 66 00 00 00 06 | 00 04 00 2a 00 03 01 dd |..rf....|...*....|
|00005530| 02 7d 00 2a 00 03 01 6b | 01 3a a4 82 6f 87 00 00 |.}.*...k|.:..o...|
|00005540| 0f ac 00 00 0f b9 00 00 | 0e df 01 00 00 00 04 ec |........|........|
|00005550| 00 2a 00 00 03 b5 00 00 | 03 bb 07 4d 79 41 64 64 |.*......|...MyAdd|
|00005560| 72 00 00 00 05 f1 00 00 | 05 fd 0d 4d 65 6d 62 65 |r.......|...Membe|
|00005570| 72 4b 6c 75 64 67 65 00 | 00 00 06 f6 00 00 06 ff |rKludge.|........|
|00005580| 09 54 69 63 6b 43 6f 75 | 6e 74 00 00 07 96 00 00 |.TickCou|nt......|
|00005590| 07 a1 0b 6e 75 6d 74 6f | 73 74 72 69 6e 67 00 00 |...numto|string..|
|000055a0| 09 c1 00 00 09 d5 15 74 | 4d 65 73 73 61 67 65 48 |.......t|MessageH|
|000055b0| 61 6e 64 6c 65 72 2e 69 | 6e 69 74 00 00 00 0a d5 |andler.i|nit.....|
|000055c0| 00 00 0a ec 17 74 4d 65 | 73 73 61 67 65 48 61 6e |.....tMe|ssageHan|
|000055d0| 64 6c 65 72 2e 72 65 73 | 74 61 72 74 00 00 0b 16 |dler.res|tart....|
|000055e0| 00 00 0b 2b 15 74 4d 65 | 73 73 61 67 65 48 61 6e |...+.tMe|ssageHan|
|000055f0| 64 6c 65 72 2e 53 74 61 | 6d 70 00 00 0c fa 00 00 |dler.Sta|mp......|
|00005600| 0d 11 17 74 4d 65 73 73 | 61 67 65 48 61 6e 64 6c |...tMess|ageHandl|
|00005610| 65 72 2e 44 65 73 74 72 | 6f 79 00 00 0e e9 00 00 |er.Destr|oy......|
|00005620| 0f 06 1d 74 4d 65 73 73 | 61 67 65 48 61 6e 64 6c |...tMess|ageHandl|
|00005630| 65 72 2e 44 69 73 70 6f | 73 50 72 69 6f 50 74 72 |er.Dispo|sPrioPtr|
|00005640| 00 00 0f 9c 00 00 0f b9 | 1d 74 4d 65 73 73 61 67 |........|.tMessag|
|00005650| 65 48 61 6e 64 6c 65 72 | 2e 44 69 73 70 6f 73 43 |eHandler|.DisposC|
|00005660| 6f 72 65 50 74 72 00 00 | 10 4e 00 00 10 67 19 74 |orePtr..|.N...g.t|
|00005670| 4d 65 73 73 61 67 65 48 | 61 6e 64 6c 65 72 2e 44 |MessageH|andler.D|
|00005680| 69 73 70 6f 73 4d 73 67 | 00 00 12 9b 00 00 12 b5 |isposMsg|........|
|00005690| 1b 74 4d 65 73 73 61 67 | 65 48 61 6e 64 6c 65 72 |.tMessag|eHandler|
|000056a0| 2e 4e 65 77 50 72 69 6f | 50 74 72 00 00 00 13 e9 |.NewPrio|Ptr.....|
|000056b0| 00 00 14 03 1b 74 4d 65 | 73 73 61 67 65 48 61 6e |.....tMe|ssageHan|
|000056c0| 64 6c 65 72 2e 4e 65 77 | 43 6f 72 65 50 74 72 00 |dler.New|CorePtr.|
|000056d0| 00 00 15 fb 00 00 16 17 | 1d 74 54 61 73 6b 48 61 |........|.tTaskHa|
|000056e0| 6e 64 6c 65 72 2e 4d 73 | 67 48 65 61 64 65 72 55 |ndler.Ms|gHeaderU|
|000056f0| 73 61 62 6c 65 00 00 00 | 19 47 00 00 19 5d 17 74 |sable...|.G...].t|
|00005700| 54 61 73 6b 48 61 6e 64 | 6c 65 72 2e 4d 73 67 55 |TaskHand|ler.MsgU|
|00005710| 73 61 62 6c 65 00 00 00 | 1a 3e 00 00 1a 58 1b 74 |sable...|.>...X.t|
|00005720| 54 61 73 6b 48 61 6e 64 | 6c 65 72 2e 4d 73 67 45 |TaskHand|ler.MsgE|
|00005730| 76 61 6c 75 61 74 69 6f | 6e 00 00 00 1a b0 00 00 |valuatio|n.......|
|00005740| 1a c1 11 74 54 61 73 6b | 48 61 6e 64 6c 65 72 2e |...tTask|Handler.|
|00005750| 69 6e 69 74 00 00 1b 77 | 00 00 1b 8b 15 74 54 61 |init...w|.....tTa|
|00005760| 73 6b 48 61 6e 64 6c 65 | 72 2e 72 65 73 74 61 72 |skHandle|r.restar|
|00005770| 74 00 00 00 1c d5 00 00 | 1c e8 13 74 54 61 73 6b |t.......|...tTask|
|00005780| 47 65 6e 65 72 61 74 6f | 72 2e 69 6e 69 74 00 00 |Generato|r.init..|
|00005790| 1e 46 00 00 1e 5c 17 74 | 54 61 73 6b 47 65 6e 65 |.F...\.t|TaskGene|
|000057a0| 72 61 74 6f 72 2e 72 65 | 73 74 61 72 74 00 00 00 |rator.re|start...|
|000057b0| 1e f4 00 00 1f 08 15 74 | 54 61 73 6b 47 65 6e 65 |.......t|TaskGene|
|000057c0| 72 61 74 6f 72 2e 53 74 | 61 6d 70 00 00 00 1f 65 |rator.St|amp....e|
|000057d0| 00 00 1f 7b 17 74 54 61 | 73 6b 47 65 6e 65 72 61 |...{.tTa|skGenera|
|000057e0| 74 6f 72 2e 4e 65 77 54 | 61 73 6b 00 00 00 21 88 |tor.NewT|ask...!.|
|000057f0| 00 00 21 9e 17 74 53 63 | 68 65 64 75 6c 65 72 2e |..!..tSc|heduler.|
|00005800| 73 65 6e 64 6d 65 73 73 | 61 67 65 00 00 00 23 87 |sendmess|age...#.|
|00005810| 00 00 23 9e 17 74 53 63 | 68 65 64 75 6c 65 72 2e |..#..tSc|heduler.|
|00005820| 72 65 70 6c 79 6d 65 73 | 73 61 67 65 00 00 27 38 |replymes|sage..'8|
|00005830| 00 00 27 47 0f 74 53 63 | 68 65 64 75 6c 65 72 2e |..'G.tSc|heduler.|
|00005840| 69 6e 69 74 00 00 29 3a | 00 00 29 4a 11 74 53 63 |init..):|..)J.tSc|
|00005850| 68 65 64 75 6c 65 72 2e | 72 65 73 65 74 00 00 00 |heduler.|reset...|
|00005860| 2b 94 00 00 2b a3 0f 74 | 53 63 68 65 64 75 6c 65 |+...+..t|Schedule|
|00005870| 72 2e 66 72 65 65 00 00 | 2c d1 00 00 2c e6 15 74 |r.free..|,...,..t|
|00005880| 53 63 68 65 64 75 6c 65 | 72 2e 73 65 74 53 65 6e |Schedule|r.setSen|
|00005890| 64 69 6e 67 00 00 2d 77 | 00 00 2d 8e 17 74 53 63 |ding..-w|..-..tSc|
|000058a0| 68 65 64 75 6c 65 72 2e | 73 65 74 52 65 63 65 69 |heduler.|setRecei|
|000058b0| 76 69 6e 67 00 00 2e 26 | 00 00 2e 40 1b 74 53 63 |ving...&|...@.tSc|
|000058c0| 68 65 64 75 6c 65 72 2e | 49 6e 69 74 54 61 73 6b |heduler.|InitTask|
|000058d0| 48 61 6e 64 6c 65 72 00 | 00 00 2e 26 00 00 2e 40 |Handler.|...&...@|
|000058e0| 17 74 53 63 68 65 64 75 | 6c 65 72 2e 49 6e 69 74 |.tSchedu|ler.Init|
|000058f0| 52 65 63 65 69 76 65 00 | 00 00 30 26 00 00 30 42 |Receive.|..0&..0B|
|00005900| 1d 74 53 63 68 65 64 75 | 6c 65 72 2e 49 6e 69 74 |.tSchedu|ler.Init|
|00005910| 54 61 73 6b 47 65 6e 65 | 72 61 74 6f 72 00 00 00 |TaskGene|rator...|
|00005920| 33 7e 00 00 33 92 15 74 | 53 63 68 65 64 75 6c 65 |3~..3..t|Schedule|
|00005930| 72 2e 44 6f 4e 65 77 54 | 61 73 6b 00 00 00 38 8b |r.DoNewT|ask...8.|
|00005940| 00 00 38 9f 15 74 53 63 | 68 65 64 75 6c 65 72 2e |..8..tSc|heduler.|
|00005950| 48 61 6e 64 6c 65 4d 73 | 67 00 00 00 39 14 00 00 |HandleMs|g...9...|
|00005960| 39 1b 07 6b 69 6c 6c 4d | 73 67 00 00 3b 47 00 00 |9..killM|sg..;G..|
|00005970| 3b 51 0b 52 65 63 65 69 | 76 65 4d 73 67 00 00 00 |;Q.Recei|veMsg...|
|00005980| 44 6b 00 00 44 82 17 74 | 53 63 68 65 64 75 6c 65 |Dk..D..t|Schedule|
|00005990| 72 2e 50 65 72 69 6f 64 | 69 63 54 61 73 6b 00 00 |r.Period|icTask..|
|000059a0| 48 4e 00 00 48 61 11 74 | 53 63 68 65 64 75 6c 65 |HN..Ha.t|Schedule|
|000059b0| 72 2e 53 6c 65 65 70 00 | 00 00 49 af 00 00 49 c1 |r.Sleep.|..I...I.|
|000059c0| 13 74 73 63 68 65 64 75 | 6c 65 72 2e 6b 69 63 6b |.tschedu|ler.kick|
|000059d0| 4f 66 66 00 00 00 4c 5c | 00 00 4c 72 17 74 53 63 |Off...L\|..Lr.tSc|
|000059e0| 68 65 64 75 6c 65 72 2e | 68 61 6e 64 6c 65 45 72 |heduler.|handleEr|
|000059f0| 72 6f 72 00 00 00 52 5e | 00 00 52 7a 1d 74 53 63 |ror...R^|..Rz.tSc|
|00005a00| 68 65 64 75 6c 65 72 43 | 6f 68 61 6e 64 6c 65 72 |hedulerC|ohandler|
|00005a10| 2e 43 6f 48 61 6e 64 6c | 65 00 00 00 53 2c 00 00 |.CoHandl|e...S,..|
|00005a20| 53 45 19 74 53 63 68 65 | 64 75 6c 65 72 43 6f 68 |SE.tSche|dulerCoh|
|00005a30| 61 6e 64 6c 65 72 2e 52 | 65 73 65 74 00 00 00 1e |andler.R|eset....|
|00005a40| 00 2a 00 03 01 dd 02 7d | 00 2a 00 03 01 6b 01 3a |.*.....}|.*...k.:|
|00005a50| 00 00 0e df 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005a60| 00 2b 01 23 80 00 00 00 | 05 31 2e 32 2e 33 1e 31 |.+.#....|.1.2.3.1|
|00005a70| 2e 32 2e 33 a9 31 39 39 | 31 54 68 65 20 4e 65 74 |.2.3.199|1The Net|
|00005a80| 57 6f 72 6b 20 50 72 6f | 6a 65 63 74 20 00 00 01 |Work Pro|ject ...|
|00005a90| 00 00 00 06 8d 00 00 05 | 8d 00 00 00 5e 00 48 3c |........|....^.H<|
|00005aa0| 78 08 d2 00 00 00 1c 00 | 5e 00 01 4d 50 53 52 00 |x.......|^..MPSR.|
|00005ab0| 02 00 12 76 65 72 73 00 | 00 00 36 03 ed ff ff 00 |...vers.|..6.....|
|00005ac0| 00 00 00 00 00 00 00 03 | ef ff ff 00 00 00 4c 00 |........|......L.|
|00005ad0| 00 00 00 03 f0 ff ff 00 | 00 05 3c 00 00 00 00 00 |........|..<.....|
|00005ae0| 02 ff ff 20 00 05 5e 00 | 48 39 3c 00 00 00 00 00 |... ..^.|H9<.....|
|00005af0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+